Codeforces Round #558 (Div. 2)B(SET,模拟)
2024-10-19 18:41:16
#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;
}
最新文章
- Android GPS应用开发
- String Date Calendar之间的转换
- Mongodb无法访问28107的问题
- Clank – 快速构建移动 APP 原型的 HTML/CSS 框架
- iis7下iis安全狗不能用怎么办(安装iis6兼容性)
- Python核心编程--学习笔记--9--文件和输入输出
- 使用Hint来优化执行计划
- 换行符‘\n’和回车符‘\r’
- Go语言程序的状态监控 via 达达
- 【前端】使用weinre对手机、微信浏览器页面调试
- IP地址 子网掩码 默认网关 DNS(转)
- glVertexAttribPointer 用法简介
- node.js 找不到 xxx 模块解决办法
- 12C -- 配置Application Continuity
- docker 时区设置
- 两个大数组foreach,找出相同的key数量,所用的时间对比
- iOS 静态库和动态库(库详解)
- Linux学习笔记(第九章)
- x64dbg使用心得
- linux环境下maven的安装配置
热门文章
- WCF寄宿(Host)之自我寄宿(Self-Hosting)简单实例【Console应用为宿主】
- css中单位px和em,rem的区别
- A N EAR -D UPLICATE D ETECTION A LGORITHM T O F ACILITATE D OCUMENT C LUSTERING——有时间看看里面的相关研究
- linux-常用指令2
- IO流 相关基础积累
- 【二叉树的递归】07路径组成数字的和【Sum Root to Leaf Numbers】
- C++ STL, sort用法。
- [Codeforces 1139D] Steps to One
- SqlServer2005的备份和还原(不同服务器)
- 人物-IT-刘强东:刘强东