Advertisement
a53

Anagrame2

a53
Jun 5th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <fstream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. ifstream fin("anagrame2.in");
  6. ofstream fout("anagrame2.out");
  7.  
  8. char sir[100001],cuvant[25001];
  9. int vc[250],vs[250];
  10.  
  11. int main()
  12. {
  13. int p,ls,lc,cnt=0,I;
  14. char x[10];
  15. bool ok=true;
  16. fin>>p;
  17. fin.getline(x,9);
  18. fin.getline(sir,100001);
  19. fin.getline(cuvant,25001);
  20. ls=strlen(sir);
  21. lc=strlen(cuvant);
  22. for(int i=0;i<lc;i++)
  23. vc[cuvant[i]]++;
  24. for(int i=0;i<lc;i++)
  25. vs[sir[i]]++;
  26. for(int i=65;i<=130;i++)
  27. if(vs[i]!=vc[i])
  28. {
  29. ok=false;
  30. break;
  31. }
  32. if (ok)
  33. {
  34. cnt++;
  35. I=0;
  36. }
  37. for(int i=1;i<ls-lc+1;i++)
  38. {
  39. ok=true;
  40. vs[sir[i-1]]--;
  41. vs[sir[i+lc-1]]++;
  42. for(int j=65;j<=130;j++)
  43. if(vs[j]!=vc[j])
  44. {
  45. ok=false;
  46. break;
  47. }
  48. if(ok)
  49. {
  50. cnt++;
  51. if(cnt==1)
  52. I=i;
  53. }
  54. }
  55. if(p==1)
  56. for(int i=I;i<=I+lc-1;i++)
  57. fout<<sir[i];
  58. else
  59. fout<<cnt;
  60.  
  61. fin.close();
  62. fout.close();
  63. return 0;
  64. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement