有两个结论:1.排序后,答案一定是连续的三个数;2.当序列长度超过44一定有三个相同的数(因为即使该序列是斐波那契数列,此时也超过了1e9),然后用主席树等数据结构(略卡常,建议主席树)来维护前45大即可

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 100005
4 #define mid (l+r>>1)
5 #define inf 1000000000
6 int V,n,m,k,x,y,a[N],b[N],r[N],f[N*20],ls[N*20],rs[N*20];
7 void update(int k1,int &k2,int l,int r,int x){
8 k2=++V;
9 ls[k2]=ls[k1];
10 rs[k2]=rs[k1];
11 f[k2]=f[k1]+1;
12 if (l==r)return;
13 if (x<=mid)update(ls[k1],ls[k2],l,mid,x);
14 else update(rs[k1],rs[k2],mid+1,r,x);
15 }
16 int query(int k1,int k2,int l,int r,int p){
17 if (l==r)return l;
18 if (f[rs[k2]]-f[rs[k1]]>=p)return query(rs[k1],rs[k2],mid+1,r,p);
19 return query(ls[k1],ls[k2],l,mid,p-f[rs[k2]]+f[rs[k1]]);
20 }
21 int main(){
22 while (scanf("%d%d",&n,&m)!=EOF){
23 V=0;
24 for(int i=1;i<=n;i++)scanf("%d",&a[i]);
25 for(int i=1;i<=n;i++)b[i]=a[i];
26 sort(b+1,b+n+1);
27 int k=unique(b+1,b+n+1)-b-1;
28 for(int i=1;i<=n;i++)a[i]=lower_bound(b+1,b+k+1,a[i])-b;
29 for(int i=1;i<=n;i++)update(r[i-1],r[i]=++V,1,k,a[i]);
30 for(int i=1;i<=m;i++){
31 scanf("%d%d",&x,&y);
32 int ma=min(y-x+1,45),flag=0;
33 for(int j=1;j<=ma;j++){
34 a[j]=query(r[x-1],r[y],1,k,j);
35 if ((j>2)&&(b[a[j-1]]+b[a[j]]>b[a[j-2]])){
36 printf("%lld\n",0LL+b[a[j]]+b[a[j-1]]+b[a[j-2]]);
37 flag=1;
38 break;
39 }
40 }
41 if (!flag)printf("-1\n");
42 }
43 }
44 }

最新文章

  1. ios视频播放器,代码和界面分离
  2. Java的super调用案例: super.getClass()返回的是子类自己
  3. 文本比较算法Ⅱ——Needleman/Wunsch算法
  4. 聊聊 Linux 中的五种 IO 模型
  5. 1.1 让CPU占用率曲线听你指挥[cpu manager]
  6. UML-类图,包图
  7. NSPredicate的用法
  8. new/delete和malloc/free的比较
  9. keil4编译Error: User Command terminated, Exit-Code = 1解决
  10. [Swift]LeetCode275. H指数 II | H-Index II
  11. 关于处理注册表权限无法修改的问题(无法打开主键或注册表项unknown)
  12. webpack 3.X研究
  13. python_09 文件处理流程,文件操作方法
  14. 字符串转化为int数组
  15. -webkit-CSS属性拾遗
  16. centos 7 忘记密码
  17. C++引用的用处
  18. 用到了yii2 hasMany() 方法,一对多关联
  19. 【[USACO08JAN]haybale猜测Haybale Guessing】
  20. java获取IP地址

热门文章

  1. Rclone使用教程 - 挂载Onedrive和谷歌网盘
  2. Mac录屏同时录制系统声音和画外音(Soundflower无法安装解决方案)
  3. OpenSSL version mismatch. Built against 1010104f, you have 101000cf
  4. noj加1乘2平方
  5. 《JavaScript DOM编程艺术》:+= 相加之后再赋值
  6. 【UE4 设计模式】组件模式 Components Pattern
  7. FastAPI 学习之路(五十六)将token存放在redis
  8. python的random模块生成随机数
  9. Pandas核心用法
  10. RAW RGB格式