Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <cstring>
- using namespace std;
- ifstream fin("anagrame2.in");
- ofstream fout("anagrame2.out");
- char sir[100001],cuvant[25001];
- int vc[250],vs[250];
- int main()
- {
- int p,ls,lc,cnt=0,I;
- char x[10];
- bool ok=true;
- fin>>p;
- fin.getline(x,9);
- fin.getline(sir,100001);
- fin.getline(cuvant,25001);
- ls=strlen(sir);
- lc=strlen(cuvant);
- for(int i=0;i<lc;i++)
- vc[cuvant[i]]++;
- for(int i=0;i<lc;i++)
- vs[sir[i]]++;
- for(int i=65;i<=130;i++)
- if(vs[i]!=vc[i])
- {
- ok=false;
- break;
- }
- if (ok)
- {
- cnt++;
- I=0;
- }
- for(int i=1;i<ls-lc+1;i++)
- {
- ok=true;
- vs[sir[i-1]]--;
- vs[sir[i+lc-1]]++;
- for(int j=65;j<=130;j++)
- if(vs[j]!=vc[j])
- {
- ok=false;
- break;
- }
- if(ok)
- {
- cnt++;
- if(cnt==1)
- I=i;
- }
- }
- if(p==1)
- for(int i=I;i<=I+lc-1;i++)
- fout<<sir[i];
- else
- fout<<cnt;
- fin.close();
- fout.close();
- return 0;
- }
Add Comment
Please, Sign In to add comment