Advertisement
Guest User

Untitled

a guest
Nov 17th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <fstream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5. ifstream cin("anagrame2.in");
  6. ofstream cout("anagrame2.out");
  7. int anagrame(int A[],int B[])
  8. {
  9. for(char c = 'A'; c<='z';c++)
  10. if(A[c] != B[c])
  11. return 0;
  12. return 1;
  13. }
  14.  
  15. int main()
  16. {
  17. char s[250001],c[250001];
  18. int p,F[127]={0},G[127]={0},n,m;
  19. cin >> p>>s>>c;
  20. n = strlen(s);
  21. m = strlen(c);
  22. for(int i = 0; i < m; i++)
  23. {
  24. F[c[i]]++;
  25. G[s[i]]++;
  26. }
  27. if(p==1)
  28. {
  29. for(int i =m;i<=n;i++)
  30. {
  31. if(anagrame(F,G))
  32. {
  33. for(int j=i-m;j<i;j++)
  34. cout <<s[j];
  35. break;
  36. }
  37. G[s[i]]++;
  38. G[s[i-m]]--;
  39. }
  40.  
  41. }
  42. else{
  43.  
  44. int k = 0;
  45. for(int i = m; i <= n;i++)
  46. {
  47. if(anagrame(F,G))
  48. k++;
  49. G[s[i]]++;
  50. G[s[i-m]]--;
  51. }
  52. cout << k;
  53. }
  54.  
  55.  
  56. return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement