제출 #656696

#제출 시각아이디문제언어결과실행 시간메모리
656696Neos원숭이와 사과 나무 (IZhO12_apple)C++14
100 / 100
225 ms71224 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define mid ((l + r) >> 1) const int N = 1e7 + 7, oo = 1e9; int n, cnt = 1; int seg[N], laz[N]; int L[N], R[N]; void gen(int id) { if (!L[id]) L[id] = ++cnt; if (!R[id]) R[id] = ++cnt; } void down(int id, int l, int r) { gen(id); if (!laz[id]) return; seg[L[id]] = laz[L[id]] = mid - l + 1; seg[R[id]] = laz[R[id]] = r - mid; laz[id] = 0; } void upd(int u, int v, int id = 1, int l = 1, int r = oo) { if (l > v || r < u) return; if (u <= l && r <= v){ seg[id] = r - l + 1; laz[id] = 1; return; } down(id, l, r); upd(u, v, L[id], l, mid); upd(u, v, R[id], mid + 1, r); seg[id] = seg[L[id]] + seg[R[id]]; } int get(int u, int v, int id = 1, int l = 1, int r = oo) { if (l > v || r < u) return 0; if (u <= l && r <= v) return seg[id]; down(id, l, r); return get(u, v, L[id], l, mid) + get(u, v, R[id], mid + 1, r); } int main() { scanf("%d", &n); int c = 0; for (int i = 1, t, l, r; i <= n; i++) { scanf("%d %d %d", &t, &l, &r); if (t == 1) printf("%d\n", (c = get(c + l, c + r))); else upd(c + l, c + r); } }

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

apple.cpp: In function 'int main()':
apple.cpp:41:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   41 |     scanf("%d", &n); int c = 0;
      |     ~~~~~^~~~~~~~~~
apple.cpp:43:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   43 |         scanf("%d %d %d", &t, &l, &r);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...