제출 #421787

#제출 시각아이디문제언어결과실행 시간메모리
421787tqbfjotld푸드 코트 (JOI21_foodcourt)C++14
21 / 100
710 ms51908 KiB
#include <bits/stdc++.h> using namespace std; #define int long long struct node{ int s,e; int lazymin,lazych; int v; node *l,*r; node (int _s, int _e){ s = _s; e = _e; lazymin = 0; lazych = 0; v = 0; if (s!=e){ l = new node(s,(s+e)/2); r = new node((s+e)/2+1,e); } } void proc(){ if (lazymin==0 && lazych==0) return; if (s!=e){ l->lazymin = min(l->lazymin,l->lazych+lazymin); l->lazych += lazych; r->lazymin = min(r->lazymin,r->lazych+lazymin); r->lazych += lazych; } if (s==e){ v += lazymin; v = max(v,0LL); v -= lazymin; v += lazych; } lazymin = 0; lazych = 0; } void inc(int a, int b, int val){ proc(); if (a<=s && e<=b){ lazych += val; proc(); return; } else if (b<=(s+e)/2){ l->inc(a,b,val); } else if (a>(s+e)/2){ r->inc(a,b,val); } else{ l->inc(a,b,val); r->inc(a,b,val); } l->proc(); r->proc(); } void dec(int a, int b, int val){ proc(); if (a<=s && e<=b){ lazych -= val; lazymin = min(lazymin,lazych); proc(); return; } else if (b<=(s+e)/2){ l->dec(a,b,val); } else if (a>(s+e)/2){ r->dec(a,b,val); } else{ l->dec(a,b,val); r->dec(a,b,val); } l->proc(); r->proc(); } int qu(int pos){ proc(); if (s==e) return v; if (pos>(s+e)/2)return r->qu(pos); else return l->qu(pos); } }*root; struct q_dat{ int l,r; int t,k; q_dat(){ l = 0; r = 0; t = 0; k = 0; } q_dat(int _l, int _r, int _t, int _k){ l = _l; r = _r; t = _t; k = _k; } }; vector<q_dat> query1; int groupnum[250005]; vector<q_dat> query2; vector<pair<pair<int,int>,int> > query3; main(){ int n,m,q; scanf("%lld%lld%lld",&n,&m,&q); root = new node(1,n); for (int x = 0; x<q; x++){ int a; scanf("%lld",&a); if (a==1){ int b,c,d,e; scanf("%lld%lld%lld%lld",&b,&c,&d,&e); groupnum[x] = d; query1.push_back(q_dat(b,c,x,e)); root->inc(b,c,e); } else if (a==2){ int b,c,d; scanf("%lld%lld%lld",&b,&c,&d); query2.push_back(q_dat(b,c,x,d)); root->dec(b,c,d); } else if (a==3){ int b,c; scanf("%lld%lld",&b,&c); query3.push_back({{b,c},x}); int num = root->qu(b); // printf("%lld has %lld\n",b,num); if (num>=c){ printf("1\n"); } else{ printf("0\n"); } } } }

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

foodcourt.cpp:100:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
  100 | main(){
      | ^~~~
foodcourt.cpp: In function 'int main()':
foodcourt.cpp:102:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  102 |     scanf("%lld%lld%lld",&n,&m,&q);
      |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
foodcourt.cpp:106:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  106 |         scanf("%lld",&a);
      |         ~~~~~^~~~~~~~~~~
foodcourt.cpp:109:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  109 |             scanf("%lld%lld%lld%lld",&b,&c,&d,&e);
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
foodcourt.cpp:116:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  116 |             scanf("%lld%lld%lld",&b,&c,&d);
      |             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
foodcourt.cpp:122:18: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
  122 |             scanf("%lld%lld",&b,&c);
      |             ~~~~~^~~~~~~~~~~~~~~~~~
#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...