#include <bits/stdc++.h>
using namespace std;
struct node{
int s,e,m;
long long mx,sm;
node *l,*r;
node(int S,int E){
s=S;e=E;m=(s+e)/2;mx=sm=0;
if(s!=e){
l=new node(s,m);
r=new node(m+1,e);
}
}
void upd(int x,long long nv){
if(s==e){mx=nv;sm=nv;return;}
if(x<=m)l->upd(x,nv);
else r->upd(x,nv);
mx=max(l->mx,r->mx);
sm=l->sm+r->sm;
}
long long mq(int x,int y){
if(s==x&&e==y)return mx;
if(y<=m)return l->mq(x,y);
if(x>m)return r->mq(x,y);
return max(l->mq(x,m),r->mq(m+1,y));
}
long long sq(int x,int y){
if(s==x&&e==y)return sm;
if(y<=m)return l->sq(x,y);
if(x>m)return r->sq(x,y);
return l->sq(x,m)+r->sq(m+1,y);
}
}*root=new node(0,200005);
int main(){
int n,q;
scanf("%d%d",&n,&q);
if(n<=200&&q<=200){
long long arr[n+5][n];
for(int i=0;i<n;i++)scanf("%lld",&arr[0][i]);
for(int i=1;i<=n;i++){
arr[i][0]=arr[i-1][0];
for(int j=1;j<n;j++){
arr[i][j]=max(arr[i-1][j-1],arr[i-1][j]);
}
}
int t,l,r;
for(int i=0;i<q;i++){
scanf("%d%d%d",&t,&l,&r);l--;r--;
long long ans=0;
for(int j=l;j<=r;j++){
ans+=arr[t][j];
}
printf("%lld\n",ans);
}
}else{
long long arr[n];
for(int i=0;i<n;i++){
scanf("%lld",&arr[i]);
root->upd(i,arr[i]);
}
int t[q],l[q],r[q]; bool st2=1,st3=1;
for(int i=0;i<q;i++){
scanf("%d%d%d",&t[i],&l[i],&r[i]);
if(t[i]!=t[0])st2=0;
if(l[i]!=r[i])st3=0;
}
if(st2){
for(int i=n-1;i>=0;i--){
root->upd(i,root->mq(max(0,i-t[0]),i));
}
for(int i=0;i<q;i++){
printf("%lld\n",root->sq(max(0,l[i]-1),r[i]-1));
}
}else if(st3){
for(int i=0;i<q;i++){
printf("%lld\n",root->mq(max(0,l[i]-1-t[0]),max(0,l[i]-1)));
}
}
}
}
Compilation message
ho_t5.cpp: In function 'int main()':
ho_t5.cpp:38:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&n,&q);
~~~~~^~~~~~~~~~~~~~
ho_t5.cpp:41:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
for(int i=0;i<n;i++)scanf("%lld",&arr[0][i]);
~~~~~^~~~~~~~~~~~~~~~~~~
ho_t5.cpp:50:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&t,&l,&r);l--;r--;
~~~~~^~~~~~~~~~~~~~~~~~~
ho_t5.cpp:60:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&arr[i]);
~~~~~^~~~~~~~~~~~~~~~
ho_t5.cpp:65:9: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&t[i],&l[i],&r[i]);
~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
27 ms |
25344 KB |
Output is correct |
2 |
Correct |
25 ms |
25600 KB |
Output is correct |
3 |
Correct |
24 ms |
25600 KB |
Output is correct |
4 |
Correct |
25 ms |
25728 KB |
Output is correct |
5 |
Correct |
25 ms |
25600 KB |
Output is correct |
6 |
Correct |
24 ms |
25728 KB |
Output is correct |
7 |
Correct |
26 ms |
25728 KB |
Output is correct |
8 |
Correct |
25 ms |
25600 KB |
Output is correct |
9 |
Correct |
24 ms |
25728 KB |
Output is correct |
10 |
Correct |
24 ms |
25728 KB |
Output is correct |
11 |
Correct |
24 ms |
25600 KB |
Output is correct |
12 |
Correct |
24 ms |
25728 KB |
Output is correct |
13 |
Correct |
30 ms |
25720 KB |
Output is correct |
14 |
Correct |
26 ms |
25600 KB |
Output is correct |
15 |
Correct |
26 ms |
25600 KB |
Output is correct |
16 |
Correct |
24 ms |
25728 KB |
Output is correct |
17 |
Correct |
24 ms |
25600 KB |
Output is correct |
18 |
Correct |
25 ms |
25600 KB |
Output is correct |
19 |
Correct |
25 ms |
25728 KB |
Output is correct |
20 |
Correct |
29 ms |
25728 KB |
Output is correct |
21 |
Correct |
27 ms |
25728 KB |
Output is correct |
22 |
Correct |
24 ms |
25600 KB |
Output is correct |
23 |
Correct |
25 ms |
25728 KB |
Output is correct |
24 |
Correct |
25 ms |
25600 KB |
Output is correct |
25 |
Correct |
25 ms |
25592 KB |
Output is correct |
26 |
Correct |
25 ms |
25728 KB |
Output is correct |
27 |
Correct |
24 ms |
25720 KB |
Output is correct |
28 |
Correct |
24 ms |
25600 KB |
Output is correct |
29 |
Correct |
29 ms |
25600 KB |
Output is correct |
30 |
Correct |
27 ms |
25728 KB |
Output is correct |
31 |
Correct |
24 ms |
25728 KB |
Output is correct |
32 |
Correct |
25 ms |
25720 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
27 ms |
25344 KB |
Output is correct |
2 |
Correct |
394 ms |
32120 KB |
Output is correct |
3 |
Correct |
387 ms |
32012 KB |
Output is correct |
4 |
Correct |
408 ms |
32248 KB |
Output is correct |
5 |
Correct |
395 ms |
31992 KB |
Output is correct |
6 |
Correct |
407 ms |
31992 KB |
Output is correct |
7 |
Correct |
517 ms |
32248 KB |
Output is correct |
8 |
Correct |
412 ms |
32376 KB |
Output is correct |
9 |
Correct |
424 ms |
32396 KB |
Output is correct |
10 |
Correct |
481 ms |
32120 KB |
Output is correct |
11 |
Correct |
405 ms |
32376 KB |
Output is correct |
12 |
Correct |
425 ms |
32032 KB |
Output is correct |
13 |
Correct |
513 ms |
32048 KB |
Output is correct |
14 |
Correct |
393 ms |
32120 KB |
Output is correct |
15 |
Correct |
403 ms |
32072 KB |
Output is correct |
16 |
Correct |
488 ms |
31992 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
27 ms |
25344 KB |
Output is correct |
2 |
Incorrect |
354 ms |
31352 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
146 ms |
29176 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
27 ms |
25344 KB |
Output is correct |
2 |
Correct |
25 ms |
25600 KB |
Output is correct |
3 |
Correct |
24 ms |
25600 KB |
Output is correct |
4 |
Correct |
25 ms |
25728 KB |
Output is correct |
5 |
Correct |
25 ms |
25600 KB |
Output is correct |
6 |
Correct |
24 ms |
25728 KB |
Output is correct |
7 |
Correct |
26 ms |
25728 KB |
Output is correct |
8 |
Correct |
25 ms |
25600 KB |
Output is correct |
9 |
Correct |
24 ms |
25728 KB |
Output is correct |
10 |
Correct |
24 ms |
25728 KB |
Output is correct |
11 |
Correct |
24 ms |
25600 KB |
Output is correct |
12 |
Correct |
24 ms |
25728 KB |
Output is correct |
13 |
Correct |
30 ms |
25720 KB |
Output is correct |
14 |
Correct |
26 ms |
25600 KB |
Output is correct |
15 |
Correct |
26 ms |
25600 KB |
Output is correct |
16 |
Correct |
24 ms |
25728 KB |
Output is correct |
17 |
Correct |
24 ms |
25600 KB |
Output is correct |
18 |
Correct |
25 ms |
25600 KB |
Output is correct |
19 |
Correct |
25 ms |
25728 KB |
Output is correct |
20 |
Correct |
29 ms |
25728 KB |
Output is correct |
21 |
Correct |
27 ms |
25728 KB |
Output is correct |
22 |
Correct |
24 ms |
25600 KB |
Output is correct |
23 |
Correct |
25 ms |
25728 KB |
Output is correct |
24 |
Correct |
25 ms |
25600 KB |
Output is correct |
25 |
Correct |
25 ms |
25592 KB |
Output is correct |
26 |
Correct |
25 ms |
25728 KB |
Output is correct |
27 |
Correct |
24 ms |
25720 KB |
Output is correct |
28 |
Correct |
24 ms |
25600 KB |
Output is correct |
29 |
Correct |
29 ms |
25600 KB |
Output is correct |
30 |
Correct |
27 ms |
25728 KB |
Output is correct |
31 |
Correct |
24 ms |
25728 KB |
Output is correct |
32 |
Correct |
25 ms |
25720 KB |
Output is correct |
33 |
Incorrect |
169 ms |
29176 KB |
Output isn't correct |
34 |
Halted |
0 ms |
0 KB |
- |