Pagini recente » Cod sursa (job #1050373) | Cod sursa (job #1280521) | Cod sursa (job #675484) | Cod sursa (job #2589131) | Cod sursa (job #1939306)
#include <iostream>
#include <map>
#include <algorithm>
#include <string>
#define x first
#define y second
#define mp make_pair
using namespace std;
int n,m,i,j,a,b;
map<string,int> mymap;
map<string,int> :: iterator it;
string s[100005];
int raspuns[200005];
int main()
{
string x="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
n=100000;
m=200000;
for(i = 1; i <= n; i++)
//fin >> s[i];
{
x[ i%40 ] = char(97 + i%26);
s[i] = x;
}
sort(s+1, s+1+n);
x = x.substr(0,x.size()-1);
for(i = 1; i <= m; i++)
{
string t;
//fin >> t;
x[ i%39 ] = char(97 + i%26);
t = s[i%n+1];
it = mymap.find(t);
if(it != mymap.end())
{
raspuns[i] = -(it->y);
it->y = i;
}
else
mymap.insert(mp(t,i));
}
for(i = 1; i <= n; i++)
{
string t = s[i].substr(1);
it = mymap.find(t);
if(it != mymap.end())
{
a = it->y;
mymap.erase(it);
while(a)
{
b = raspuns[a];
raspuns[a] = i;
a = -b;
}
}
for(j = 0; j < s[i].size()-1; j++)
{
t[j] = s[i][j];
it = mymap.find(t);
if(it != mymap.end())
{
a = it->y;
mymap.erase(it);
while(a)
{
b = raspuns[a];
raspuns[a] = i;
a = -b;
}
}
}
}
string z;
return 0;
}