0108 - Operation of Frequency of Appearance
#include <algorithm> #include <iostream> using namespace std; void Slove(int n) { int P[12], S[12], min_count=0, k; for (int k=0; k<n; ++k) cin >> S[k]; while (true) { fill(P,P+12,0); for (int i=0; i<n; ++i) for (int j=0; j<n; ++j) if (S[i] == S[j]) ++P[i]; for (k=0; k<n; ++k) if (P[k] != S[k]) break; if (k == n) break; for (int i=0; i<12; ++i) S[i]=P[i]; ++min_count; } cout << min_count << endl; for (k=0; k<n; ++k) { cout << P[k]; (k==n-1)? cout << endl : cout << " "; } } int main(void) { int n; while (cin >> n && n) Slove(n); return 0; }
やるだけなんですな。。