zoukankan      html  css  js  c++  java
  • Codeforces Round #558 (Div. 2)B(SET,模拟)

    #include<bits/stdc++.h>
    using namespace std;
    int a[100007];
    int cnt[100007];
    int main(){
        int n;
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
         scanf("%d",&a[i]);
     int ans=1;
     set<int>s,num;//数字出现的次数,数字
     map<int,int>vis;//记录数字出现的次数的个数
     cnt[a[1]]++;
     s.insert(cnt[a[1]]);
     num.insert(a[1]);
     vis[cnt[a[1]]]++;
     for(int i=2;i<=n;++i){
      vis[cnt[a[i]]]--;
      if(!vis[cnt[a[i]]])
                s.erase(s.find(cnt[a[i]]));
      cnt[a[i]]++;
      vis[cnt[a[i]]]++;
      s.insert(cnt[a[i]]);
      num.insert(a[i]);
      if(s.size()==2){
       if(*s.rbegin()-*s.begin()==1&&vis[*s.rbegin()]==1||*s.begin()==1&&vis[1]==1)//有一个数字多出现了一次或者有一个数字只出现了一次
        ans=i;
      }
      else if(s.size()==1&&(num.size()==1||*s.begin()==1))//只有一个数字或者都只出现了一次
       ans=i;
     }
     printf("%d",ans);
        return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    注册审核
    静态表单验证
    多条件查询
    0623TP框架联系
    0618框架 增删改练习
    php框架 数据添加
    0616框架查询
    0614空操作方法 空控制器 跨控制器调用 命名空间
    php 0613框架基础
    php查询
  • 原文地址:https://www.cnblogs.com/ldudxy/p/10844050.html
Copyright © 2011-2022 走看看