Untitled
unknown
plain_text
2 years ago
968 B
2
Indexable
#include <iostream> #include <vector> using namespace std; struct Node{ int cnt; int go[2]; Node(){ cnt=0; for (int i = 0; i < 26; i++){ go[i] = -1; } } }; vector<Node> trie; void addNumber(long long int x){ int v = 0,p=0; for (int i = 2; i>-1; i--){ int cur = ((x >> i) & 1); if (trie[v].go[cur] == -1){ trie.push_back(Node()); trie[v].go[cur] = trie.size()-1; } v = trie[v].go[cur]; } trie[v].cnt++; } void del(long long int x){ int v=0; for (int i = 5; i>-1; i--){ int cur = ((x >> i) & 1); v = trie[v].go[cur]; } --trie[v].cnt; } int main() { trie.push_back(Node()); long long int q,x; string s; cin>>q; for (int i=0;i<q;i++){ cin>>s>>x; if (s == "+"){ addNumber(x); } else if (s == "-"){ del(x); } } return 0; }
Editor is loading...