#include<bits/stdc++.h>
using namespace std;
struct Node {
map<string, Node*> children;
map<string, int> files;
};
int main()
{
vector<vector<string>> queries;
queries.push_back({"ADD", "/dir1/dir2/file.txt", "10"});
queries.push_back({"COPY", "/not-existing.file", "/dir1/dir2/"});
queries.push_back({"COPY", "/dir1/dir2/file.txt", "/dir1/file.txt"});
queries.push_back({"ADD", "/dir1/file.txt", "15"});
queries.push_back({"COPY", "/dir1/file.txt", "/dir1/dir2/file.txt"});
queries.push_back({"GET", "/dir1/file.txt"});
queries.push_back({"GET", "/not-existing.file"});
Node* root_node = new Node(); // Create empty root node
for (auto query : queries) {
vector<string> tokens;
std::istringstream iss(query[1]);
string token;
std::getline(iss, token, '/');
while (std::getline(iss, token, '/')) {
tokens.push_back(token);
cout << token << " , ";
}
}
// Node* curr_node = root_node;
// for (int i = 0; i < tokens.size() - 1; i++) {
// if (curr_node->children.find(tokens[i]) != curr_node->children.end()) {
// // This means already exists
// curr_node = curr_node->children[tokens[i]];
// cout << "GOING IN\n";
// } else {
// // Create new node
// Node* new_node_created = new Node();
// curr_node->children[tokens[i]] = new_node_created;
// curr_node = curr_node->children[tokens[i]];
// cout << "NEW CREATED\n";
// }
// }
// // Last me file add
// if (curr_node->files.find(tokens.back()) != curr_node->files.end()) {
// // Means file already exists
// return false;
// } else {
// curr_node->files[tokens.back()] = 10;
// return true;
// }
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpzdHJ1Y3QgTm9kZSB7CgltYXA8c3RyaW5nLCBOb2RlKj4gY2hpbGRyZW47CgltYXA8c3RyaW5nLCBpbnQ+IGZpbGVzOwp9OwoKaW50IG1haW4oKQp7Cgl2ZWN0b3I8dmVjdG9yPHN0cmluZz4+IHF1ZXJpZXM7CglxdWVyaWVzLnB1c2hfYmFjayh7IkFERCIsICIvZGlyMS9kaXIyL2ZpbGUudHh0IiwgIjEwIn0pOwoJcXVlcmllcy5wdXNoX2JhY2soeyJDT1BZIiwgIi9ub3QtZXhpc3RpbmcuZmlsZSIsICIvZGlyMS9kaXIyLyJ9KTsKCXF1ZXJpZXMucHVzaF9iYWNrKHsiQ09QWSIsICIvZGlyMS9kaXIyL2ZpbGUudHh0IiwgIi9kaXIxL2ZpbGUudHh0In0pOwoJcXVlcmllcy5wdXNoX2JhY2soeyJBREQiLCAiL2RpcjEvZmlsZS50eHQiLCAiMTUifSk7CglxdWVyaWVzLnB1c2hfYmFjayh7IkNPUFkiLCAiL2RpcjEvZmlsZS50eHQiLCAiL2RpcjEvZGlyMi9maWxlLnR4dCJ9KTsKCXF1ZXJpZXMucHVzaF9iYWNrKHsiR0VUIiwgIi9kaXIxL2ZpbGUudHh0In0pOwoJcXVlcmllcy5wdXNoX2JhY2soeyJHRVQiLCAiL25vdC1leGlzdGluZy5maWxlIn0pOwoKCU5vZGUqIHJvb3Rfbm9kZSA9IG5ldyBOb2RlKCk7IC8vIENyZWF0ZSBlbXB0eSByb290IG5vZGUKCglmb3IgKGF1dG8gcXVlcnkgOiBxdWVyaWVzKSB7CgkJdmVjdG9yPHN0cmluZz4gdG9rZW5zOwoJICAgIHN0ZDo6aXN0cmluZ3N0cmVhbSBpc3MocXVlcnlbMV0pOwoJCXN0cmluZyB0b2tlbjsKCQlzdGQ6OmdldGxpbmUoaXNzLCB0b2tlbiwgJy8nKTsKCSAgICB3aGlsZSAoc3RkOjpnZXRsaW5lKGlzcywgdG9rZW4sICcvJykpIHsKCQkJdG9rZW5zLnB1c2hfYmFjayh0b2tlbik7CgkJCWNvdXQgPDwgdG9rZW4gPDwgIiAsICI7CgkJfQoJfQoKCgkvLyBOb2RlKiBjdXJyX25vZGUgPSByb290X25vZGU7CgkvLyBmb3IgKGludCBpID0gMDsgaSA8IHRva2Vucy5zaXplKCkgLSAxOyBpKyspIHsKCS8vIAlpZiAoY3Vycl9ub2RlLT5jaGlsZHJlbi5maW5kKHRva2Vuc1tpXSkgIT0gY3Vycl9ub2RlLT5jaGlsZHJlbi5lbmQoKSkgewoJLy8gCQkvLyBUaGlzIG1lYW5zIGFscmVhZHkgZXhpc3RzCgkvLyAJCWN1cnJfbm9kZSA9IGN1cnJfbm9kZS0+Y2hpbGRyZW5bdG9rZW5zW2ldXTsKCS8vIAkJY291dCA8PCAiR09JTkcgSU5cbiI7CgkvLyAJfSBlbHNlIHsKCS8vIAkJLy8gQ3JlYXRlIG5ldyBub2RlCgkvLyAJCU5vZGUqIG5ld19ub2RlX2NyZWF0ZWQgPSBuZXcgTm9kZSgpOwoJLy8gCQljdXJyX25vZGUtPmNoaWxkcmVuW3Rva2Vuc1tpXV0gPSBuZXdfbm9kZV9jcmVhdGVkOwoJLy8gCQljdXJyX25vZGUgPSBjdXJyX25vZGUtPmNoaWxkcmVuW3Rva2Vuc1tpXV07CgkvLyAJCWNvdXQgPDwgIk5FVyBDUkVBVEVEXG4iOwoJLy8gCX0KCS8vIH0KCQoJLy8gLy8gTGFzdCBtZSBmaWxlIGFkZAoJLy8gaWYgKGN1cnJfbm9kZS0+ZmlsZXMuZmluZCh0b2tlbnMuYmFjaygpKSAhPSBjdXJyX25vZGUtPmZpbGVzLmVuZCgpKSB7CgkvLyAJLy8gTWVhbnMgZmlsZSBhbHJlYWR5IGV4aXN0cwoJLy8gCXJldHVybiBmYWxzZTsKCS8vIH0gZWxzZSB7CgkvLyAJY3Vycl9ub2RlLT5maWxlc1t0b2tlbnMuYmFjaygpXSA9IDEwOwoJLy8gCXJldHVybiB0cnVlOwoJLy8gfQogICAgcmV0dXJuIDA7Cn0K
dir1 , dir2 , file.txt , not-existing.file , dir1 , dir2 , file.txt , dir1 , file.txt , dir1 , file.txt , dir1 , file.txt , not-existing.file ,