fork(1) download
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void Sortowanie( int tab[], int left, int right )
  6. {
  7. int i = left;
  8. int j = right;
  9. int x = tab[( left + right ) / 2 ];
  10. do
  11. {
  12. while( tab[ i ] < x )
  13. i++;
  14.  
  15. while( tab[ j ] > x )
  16. j--;
  17.  
  18. if( i <= j )
  19. {
  20. swap( tab[ i ], tab[ j ] );
  21.  
  22. i++;
  23. j--;
  24. }
  25. }
  26. while( i <= j );
  27.  
  28. if( left < j ) Sortowanie( tab, left, j );
  29.  
  30. if( right > i ) Sortowanie( tab, i, right );
  31.  
  32. }
  33. int d, tab_a[1001],tab_s[1001],e,licznik,wynik;
  34. string anagram,slowo;
  35. int main()
  36. {
  37. getline(cin,anagram);
  38. d=anagram.length()-2;
  39. for(int i=0; i<d; i++)
  40. {
  41. tab_a[i]=(int)anagram[i];
  42. }
  43. Sortowanie(tab_a, 0,d-1);
  44.  
  45. for(int j=0; j<((int)anagram[d+1]-48); j++)
  46. {
  47. cin>>slowo;
  48. e=slowo.length();
  49. if(d==e)
  50. {
  51. for(int i=0; i<d; i++)
  52. {
  53. tab_s[i]=(int)slowo[i];
  54. }
  55. Sortowanie(tab_s, 0,d-1);
  56. for(int i=0; i<d; i++)
  57. {
  58. if(tab_s[i]==tab_a[i])
  59. {
  60. licznik++;
  61. }
  62. }
  63. if(licznik==d)
  64. {
  65. wynik++;
  66. }
  67. licznik=0;
  68. e=0;
  69. for(int i=0; i<e; i++)
  70. {
  71. tab_s[i]=0;
  72. }
  73. }
  74. }
  75. cout<<wynik;
  76. return 0;
  77. }
  78.  
Success #stdin #stdout 0s 3480KB
stdin
bc 5
adefghijklmnopqrstuwvxyz
a
aa
aaa
zzzz
stdout
Standard output is empty