川のブログ

川の適当気ままなブログです。 

AOJ 0108 Operation of Frequency of Appearance

こんにちは川です。

今回は、やるだけなので特に解説はないです。

たまにはしないとね。

 

ソースコード

 

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(cin>>n,n){
        int ans[12]={},kawa[12];
        for(int i=0;i<n;i++){
                cin>>kawa[i];
                ans[i]=kawa[i];
        }
        for(int i=0;;i++){
            int num[100]={};
            for(int j=0;j<n;j++)num[kawa[j]]++;
            bool rever=1;
            for(int j=0;j<n;j++){
                kawa[j]=num[kawa[j]];
                if(kawa[j]!=ans[j])rever=0;
            }
            if(rever){
                cout<<i<<endl;
                for(int j=0;j<n-1;j++)cout<<kawa[j]<<" ";
                cout<<ans[n-1]<<endl;
                break;
            }
            for(int j=0;j<n;j++)ans[j]=kawa[j];
        }
    }
}