În vacanța de iarnă Adelina a decis să renunțe la teme și a ales să citească o parte din cărțile aduse de Moș Crăciun: cele cu teme istorice sau SF. Pe măsură ce citea își nota în caiet datele calendaristice ale acelor evenimente care au impresionat-o. După vacanță îi povestește colegului de bancă despre aceste evenimente și remarcă faptul că unele date calendaristice au o formă specială, de palindrom: citite de la dreapta la stânga reprezintă aceeași dată ca atunci când se citesc obișnuit, de la stânga la dreapta.
Cerința
Pentru cele n
date calendaristice din agenda Adelinei numărați și afișați câte date palindromice au fost găsite iar apoi precizați secolele cu cele mai multe date palindromice.
Date de intrare
Fișierul de intrare datapal.in
conține următoarele informații :
Exemplu
datapal.in
5 01122110 11111111 19111111 09122190 12111121
datapal.out
4 12 22
Explicație
Sunt 4
date palindromice: două în secolul 12
și două în secolul 22
#include <bits/stdc++.h> using namespace std; ifstream cin("datapal.in"); ofstream cout("datapal.out"); string s; map<string , int> M; int main() { int n; cin >> n; int cnt = 0; for(int i = 1 ; i <= n ; ++i) { cin >> s; bool ok = true; int x = s.length()-1; for(int j = 0 ; j <= x ; ++j) if(s[j]!=s[x-j]) ok=false; if(ok) cnt++ , M[s.substr(4 , 2)]++; } cout << cnt << endl; int fmax = 0; for(auto x:M) if(x.second > fmax) fmax = x.second; for(auto x:M) { int nr = 0; string t = x.first; int i = 0; while(t[i]) { nr = nr * 10 + t[i]-'0'; i++; } if(x.second == fmax) cout << nr + 1 << ' '; } return 0; }