Pagini recente » Cod sursa (job #1657224) | Cod sursa (job #1281726) | Cod sursa (job #3208809) | Cod sursa (job #2885459) | Cod sursa (job #542085)
Cod sursa(job #542085)
#include <cstdio>
#include <string>
#include <iostream>
#include <vector>
using namespace std;
#define file_in "trie.in"
#define file_out "trie.out"
int tip;
vector<string> T;
string s;
string s1;
void del(string s){
vector<string> :: iterator it;
for (it=T.begin();it!=T.end();++it)
if (*it==s){
T.erase(it);
return ;
}
}
int cnt(string s){
int ans=0;
vector<string> :: iterator it;
for (it=T.begin();it!=T.end();++it)
if (*it==s){
ans++;
}
return ans;
}
int lcp(string s){
int ans=0,i;
vector<string> :: iterator it;
for (it=T.begin();it!=T.end();++it){
s1=(*it);
i=0;
while(s1[i]==s[i] && i<s.size()) i++;
ans=max(ans,i);
}
return ans;
}
int main(){
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
while(!feof(stdin)){
scanf("%d ", &tip);
cin >> s;
if (s==" ") break;
if (tip==0){
T.push_back(s);
}
else
if (tip==1){
del(s);
}
else
if (tip==2){
printf("%d\n", cnt(s));
}
else
if (tip==3)
{
printf("%d\n", lcp(s));
}
}
return 0;
}