제출 #90275

#제출 시각아이디문제언어결과실행 시간메모리
90275YottaByte원숭이와 사과 나무 (IZhO12_apple)C++14
0 / 100
20 ms720 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e6 + 1; int t[214748364], h[214748364], c; void push(int v, int l, int r) { if(!h[v]) return; if(l == r) { t[v] = (r - l + 1) * h[v]; h[v] = 0; return; } else { t[v] = (r - l + 1) * h[v]; h[v + v] = h[v]; h[v + v + 1] = h[v]; h[v] = 0; return; } } void upd(int v, int l, int r, int ql, int qr) { int mid = l + r >> 1; if(r < ql || l > qr) return; if(ql <= l && r <= qr) { h[v] = 1; push(v, l, r); return; } else { upd(v + v, l, mid, ql, qr); upd(v + v + 1, mid + 1, r, ql, qr); } push(v + v, l, mid); push(v + v + 1, mid + 1, r); t[v] = t[v + v] + t[v + v + 1]; } int getsum(int v, int l, int r, int ql, int qr) { push(v, l, r); if(r < ql || l > qr) return 0; if(ql <= l && r <= qr) { return t[v]; } else { int mid = l + r >> 1; return getsum(v + v, l, mid, ql, qr) + getsum(v + v + 1, mid + 1, r, ql, qr); } } main() { int m; cin >> m; while(m--) { int d, l, r; cin >> d >> l >> r; if(d % 2) { c = getsum(1, 1, N, l + c, r + c); if(r + c > N - 1) assert(0); cout << c << endl; } else { upd(1, 1, N, l + c, r + c); } } } /* 6 2 1 7 2 10 12 1 7 11 2 11 13 1 8 10 1 15 17 */

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

apple.cpp: In function 'void upd(int, int, int, int, int)':
apple.cpp:28:14: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
  int mid = l + r >> 1;
            ~~^~~
apple.cpp: In function 'int getsum(int, int, int, int, int)':
apple.cpp:58:15: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   int mid = l + r >> 1;
             ~~^~~
apple.cpp: At global scope:
apple.cpp:63:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main()
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...