UAPC 2011 A Popularity Estimation

問題

日本語なので本文参照。

方針

制約が小さく、区間も整数なので、配列で持てばいい。

ソースコード

int main(){
  int n;
  while(cin>>n,n){
    int cnt[40]={},d[40][40],nd[40]={};
    int pt[40]={};
    string name[40];
    rep(i,n){
      cin>>name[i];
      int m; cin>>m;
      rep(j,m)cin>>d[i][nd[i]], cnt[ d[i][nd[i]++] ]++;
    }
    rep(i,n)rep(j,nd[i])pt[i]+=max(1,n+1-cnt[d[i][j]]);
    int mn=1e9; string ans;
    rep(i,n)if(pt[i]<mn||pt[i]==mn&&(ans.empty()||ans>name[i]))mn=pt[i], ans=name[i];
    cout<<mn<<" "<<ans<<endl;
  }
  return 0;
}