Witam ,mam problem z zadaniem ze spoja,może ktoś widzi błąd>
Twoim zadaniem jest napisać prosty program, który będzie zliczać anagramy danego wyrazu.
Wejście
W pierwszej linii jeden wyraz oraz liczba n (1 ≤ n ≤ 1000) oznaczająca liczbę wyrazów do sprawdzenia.
Każda z kolejnych n linii zawiera jeden wyraz do sprawdzenia.
Wszystkie wyrazy złożone są jedynie z małych liter angielskiego alfabetu, a ich długość nie przekracza 1000 znaków.
Wyjście
Liczba anagramów pierwszego wyrazu wśród n sprawdzanych wyrazów.
Przykład
Wejście: algorytm 4 samolot logarytm rytmolgi morgatyl
Wyjście: 2
oto mój kod
#include <iostream> using namespace std; bool czy_anagram(string s1,string s2) { if(s1.size()!=s2.size())return false; for(int i=0;i<s1.size()-1;i++) { for(int j=0;j<s2.size()-1;j++) { if(s1[j]>s1[j+1])swap(s1[j],s1[j+1]); if(s2[j]>s2[j+1])swap(s2[j],s2[j+1]); } } return s1==s2; } int main() { string z; int ile=0; cin>>z; int n; cin>>n; string m[n]; for(int i=0;i<n;i++) { cin>>m[i]; } for(int i=0;i<n;i++) { if(czy_anagram(z,m[i]))ile++; } cout<<ile<<endl; return 0; }
dla przykładu działa poprawnie,więc nwm dlaczego nie chce zatwierdzić>>