NC214356. 最好的宝石
描述
输入描述
第一行两个整数 n , m (1 ≤ n,m ≤ 2e5)第二行有n个整数 w[i] (0 ≤ w[i] ≤ 1e9)接下来m行,每行代表一个操作。具体见题目描述。
输出描述
每次询问输出一行,每行两个整数 val cnt,val代表所有宝石中的最大价值,cnt代表价值最大的宝石有多少个。
示例1
输入:
5 3 2 4 3 6 8 Ask 1 5 Change 2 10 Ask 1 3
输出:
8 1 10 1
C++(clang++11) 解法, 执行用时: 850ms, 内存消耗: 1344K, 提交时间: 2020-12-06 12:06:51
#include<stdio.h> int a[200000]; int main() { char b[10]; int i,j,k,l,m,n,p1,p2,max; scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<m;i++){ scanf("%s %d%d",b,&p1,&p2); if(b[0]=='A'){ j=0; max=a[p1-1]; for(k=p1;k<p2;k++){ if(max<a[k]) max=a[k]; } for(k=p1-1;k<p2;k++) if(max==a[k]) j++; printf("%d %d\n",max,j); } else a[p1-1]=p2; } }