B2 - Cat Party

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<algorithm>
  4. using namespace std;
  5.  
  6. int n,a[100005];
  7. int color[100005]={0},maxl=-1,minl=99999;
  8. int num[100005]={0},x=0;
  9. int main(){
  10.     cin>>n;
  11.     for(int i=1;i<=n;i++){
  12.         cin>>a[i];
  13.     }
  14.     for(int i=1;i<=n;i++){
  15.         
  16.         num[color[a[i]]]--;
  17.         if(minl==color[a[i]]){
  18.             if(num[minl]==0){
  19.                 minl=color[a[i]]+1;
  20.             }
  21.         }
  22.             color[a[i]]++;
  23.         num[color[a[i]]]++;
  24.         
  25.         if(maxl<color[a[i]]){
  26.             maxl=color[a[i]];    
  27.         }
  28.         if(minl>color[a[i]]){
  29.             minl=color[a[i]];
  30.         }
  31.         //cout<<maxl*num[maxl]<<" "<<minl*num[minl]<<" "<<i<<endl;
  32.         if(num[maxl]==1&&maxl-minl==1){
  33.             x=i;
  34.         }
  35.         if(num[minl]==1&&minl==1&&maxl*num[maxl]+1==i){
  36.             x=i;
  37.         }
  38.         if(num[minl]==i&&minl==1){
  39.             x=i;
  40.         }
  41.         if(num[maxl]==1&&maxl==i){
  42.             x=i;
  43.         }
  44.         //cout<<minl<<" "<<num[minl]<<" "<<maxl<<" "<<num[maxl]<<endl;
  45.     }
  46.     cout<<x<<endl;
  47.     //if(n==1)cout<<1<<endl;
  1. }

全部评论

相关推荐

孤寡孤寡的牛牛很热情:为什么我2本9硕投了很多,都是简历或者挂,难道那个恶心人的测评真的得认真做吗
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务