제출 #969310

#제출 시각UTC-0아이디문제언어결과실행 시간메모리
9693102024-04-24 23:25:56vjudge1Pyramid Base (IOI08_pyramid_base)C++17
100 / 100
1160 ms185660 KiB
#include<bits/stdc++.h>
using namespace std;
int n,m,b,p;
#define N 1<<20
#define M 7<<16
struct info{
int minv,BA,BP,BS,SZ,lz;
info(){minv=lz=BA=BP=BS=0;}
info(int sz){minv=lz=0,BA=BP=BS=SZ=sz;}
info(info a,info b){
minv=min(a.minv,b.minv);
if(minv-b.minv)
*this=a,BS=0;
else if(minv-a.minv)
*this=b,BP=0;
else {
BA=max({a.BA,b.BA,a.BS+b.BP});
BP=(a.BP==a.SZ?a.BP+b.BP:a.BP);
BS=(b.BS==b.SZ?b.BS+a.BS:b.BS);
}
SZ=a.SZ+b.SZ,lz=0;
}
} T[2*N];
void pd(int i,bool b){
if(T[i].lz){
T[i].minv+=T[i].lz;
if(b)
T[i*2].lz+=T[i].lz,T[i*2+1].lz+=T[i].lz;
T[i].lz=0;
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

컴파일 시 표준 에러 (stderr) 메시지

pyramid_base.cpp: In function 'void update(int, int, int, int, int, int)':
pyramid_base.cpp:38:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   38 |     update(i*2,l,l+r>>1,ql,qr,k);
      |                  ~^~
pyramid_base.cpp:39:21: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   39 |     update(i*2+1,l+r+2>>1,r,ql,qr,k);
      |                  ~~~^~
pyramid_base.cpp: In function 'void build(int, int, int)':
pyramid_base.cpp:44:26: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   44 |     if(l-r) build(i*2,l,l+r>>1),
      |                         ~^~
pyramid_base.cpp:45:24: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   45 |         build(i*2+1,l+r+2>>1,r);
      |                     ~~~^~
pyramid_base.cpp: In function 'void reset(int, int, int)':
pyramid_base.cpp:76:18: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   76 |     reset(i*2,l,l+r>>1);
      |                 ~^~
pyramid_base.cpp:77:20: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   77 |     reset(i*2+1,l+r+2>>1,r);
      |                 ~~~^~
pyramid_base.cpp: In function 'int calc()':
pyramid_base.cpp:124:20: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  124 |         int mid=l+r+1>>1;
      |                 ~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...