Pagini recente » Cod sursa (job #632621) | Cod sursa (job #849436) | Cod sursa (job #348796) | Cod sursa (job #1277906) | Cod sursa (job #661221)
Cod sursa(job #661221)
#include <cstdio>
#include <fstream>
#include <iostream>
#include <map>
#include <string>
#include <algorithm>
using namespace std;
#define file_in "trie.in"
#define file_out "trie.out"
string cuv;
map<string,int> dic;
int tip,i;
int main(){
ifstream f(file_in);
ofstream g(file_out);
while(f>>tip>>cuv){
if (tip==0)
dic[cuv]++;
else
if (tip==1){
map<string,int> :: iterator it;
for (it=dic.begin();it!=dic.end();++it)
if ((*it).first==cuv){
dic.erase(it);
break;
}
}
else
if (tip==2){
int find=0;
map<string,int> :: iterator it;
for (it=dic.begin();it!=dic.end();++it)
if ((*it).first==cuv){
g<<(*it).second<<"\n";
find=1;
break;
}
if (!find)
g<<find<<"\n";
}
else{
int lcp=0;
map<string,int> :: iterator it;
for (it=dic.begin();it!=dic.end();++it){
string s1=(*it).first;
string s2=cuv;
i=0;
while(s1[i]==s2[i]){
i++;
if (i>=s1.size()) break;
if (i>=s2.size()) break;
}
lcp=max(lcp,i);
}
g<<lcp<<"\n";
}
}
return 0;
}