Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- int i, n, imp;
- long long f[20], sol, sol0, v[10];
- char s[50];
- int main()
- {
- // calcul factoriale
- f[0] = 1;
- for(i = 1; i <= 19; i++)
- f[i] = f[i-1] * i;
- cin >> s;
- n = strlen(s);
- // calcul frecventa cifre
- for(i = 0; i < n; i++)
- v[s[i]-'0']++;
- // verificare cifre cu numar impar de aparitii
- imp = 0;
- for(i = 0; i <= 9; i++)
- if(v[i] % 2 == 1) imp++;
- sol = 0;
- if(imp < 2)
- {
- // calcul total palindroame
- sol = f[n/2];
- for(i = 0; i <= 9; i++)
- if(v[i] > 0) sol = sol / f[v[i]/2];
- //calcul nr palindroame ce incep cu 0
- if(v[0] >= 2)
- {
- v[0] = v[0] - 2;
- sol0 = f[n/2-1];
- for(i = 0; i <= 9; i++)
- if(v[i] > 0) sol0 = sol0 / f[v[i]/2];
- sol = sol - sol0;
- }
- }
- cout << sol;
- return 0;
- }
Add Comment
Please, Sign In to add comment