codeforces 558B B. Amr and The Large Array(水题)
2016-04-08 15:21
447 查看
题目链接:
B. Amr and The Large Array
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Amr has got a large array of size n. Amr doesn't like large arrays so he intends to make it smaller.
Amr doesn't care about anything in the array except the beauty of it. The beauty of the array is defined to be the maximum number of times that some number occurs in this array. He wants to choose the smallest subsegment of this array such that the beauty of it will be the same as the original array.
Help Amr by choosing the smallest subsegment possible.
Input
The first line contains one number n (1 ≤ n ≤ 105), the size of the array.
The second line contains n integers ai (1 ≤ ai ≤ 106), representing elements of the array.
Output
Output two integers l, r (1 ≤ l ≤ r ≤ n), the beginning and the end of the subsegment chosen respectively.
If there are several possible answers you may output any of them.
Examples
input
output
input
output
input
output
Note
A subsegment B of an array A from l to r is an array of size r - l + 1 where Bi = Al + i - 1 for all 1 ≤ i ≤ r - l + 1
题意:
使数组的魅力值保持相同,但数组的长度尽量小;
思路:
用vector的大小来看是否对应魅力值的那个数,而vector保存了这个数的各个位置,可以得到长度,一半比较一边更新就好;
AC代码:
B. Amr and The Large Array
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output
Amr has got a large array of size n. Amr doesn't like large arrays so he intends to make it smaller.
Amr doesn't care about anything in the array except the beauty of it. The beauty of the array is defined to be the maximum number of times that some number occurs in this array. He wants to choose the smallest subsegment of this array such that the beauty of it will be the same as the original array.
Help Amr by choosing the smallest subsegment possible.
Input
The first line contains one number n (1 ≤ n ≤ 105), the size of the array.
The second line contains n integers ai (1 ≤ ai ≤ 106), representing elements of the array.
Output
Output two integers l, r (1 ≤ l ≤ r ≤ n), the beginning and the end of the subsegment chosen respectively.
If there are several possible answers you may output any of them.
Examples
input
5 1 1 2 2 1
output
1 5
input
5 1 2 2 3 1
output
2 3
input
6 1 2 2 1 1 2
output
1 5
Note
A subsegment B of an array A from l to r is an array of size r - l + 1 where Bi = Al + i - 1 for all 1 ≤ i ≤ r - l + 1
题意:
使数组的魅力值保持相同,但数组的长度尽量小;
思路:
用vector的大小来看是否对应魅力值的那个数,而vector保存了这个数的各个位置,可以得到长度,一半比较一边更新就好;
AC代码:
/* 2014300227 558B - 9 GNU C++11 Accepted 61 ms 15728 KB */ #include <bits/stdc++.h> using namespace std; const int N=1e5+4; typedef long long ll; const double PI=acos(-1.0); int n,a ; vector<int>ve[10*N]; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); ve[a[i]].push_back(i); } int ans=0,l=0,r=0; for(int i=1;i<=1e6;i++) { int g=ve[i].size(); if(g){ if(g>ve[ans].size()) { int len=g; l=ve[i][0]; r=ve[i][len-1]; ans=i; } else if(g==ve[ans].size()) { int s=g; if(ve[i][s-1]-ve[i][0]<r-l) { l=ve[i][0]; r=ve[i][s-1]; ans=i; } } } } cout<<l<<" "<<r<<endl; return 0; }
相关文章推荐
- JavaPersistenceWithHibernate第二版笔记-第六章-Mapping inheritance-009Polymorphic collections(@OneToMany(mappedBy = "user")、@ManyToOne、)
- 软考信息系统监理师:2016年4月1日作业
- 关于微信二次开发的博客
- 路由器上同时运行OSPF和RIP协议
- php上传不了文件记得修改权限
- ANDROID zhu
- 数据库1---判断数据库是否存在某张表
- Masonry的使用
- 81.UML 建模工具汇总介绍
- COM组件入门(一)
- 转字符驱动实例gpio
- Tomcat8配置数据库连接池
- 四种方案解决ScrollView嵌套ListView问题 (转)
- 【学习笔记】3D图形核心基础精炼版-2:流程概念版
- cocos 使用extensions 库需要注意的事
- Android IntentService详解
- JAVA源码之JDK(二)——Integer、Long、Double - 韩某
- js的字符串charAt()方法
- Win10预览版14316专业版自制中文ISO镜像下载 32位
- Android之HttpURLConnection