제출 #1209727

#제출 시각아이디문제언어결과실행 시간메모리
1209727abdullah_원숭이와 사과 나무 (IZhO12_apple)C++20
0 / 100
113 ms320 KiB
#include <bits/stdc++.h> using namespace std; #define int long long typedef pair<int, int> pp; #define all(a) (a).begin(), (a).end() #define what_is(x) cerr << #x << " is " << x << '\n'; #define print(a) for (const auto &x : (a)) cout << x << ' '; cout << '\n'; const int N = 2e5 + 7; const int MOD = 1e9 + 7; const int INF = 1e15; struct tree { tree *left = 0, *right = 0; int val = 0, lazy = 0; int low {}, high {}; tree(int l, int r) : low(l), high(r) {} ~tree() { delete left; delete right; } void apply(int newval) { this->val = (high - low + 1); this->lazy |= newval; } void push() { if (low == high || !lazy) { return; } int mid = low + (high - low) / 2; if (!left) left = new tree(low, mid); if (!right) right = new tree(mid + 1, high); left->apply(lazy); right->apply(lazy); lazy = 0; } int query(int l, int r) { if (l <= low && high <= r) return this->val; if (l > high || low > r) return 0; push(); int res = 0; if (left) res += left->query(l, r); if (right) res += right->query(l, r); return res; } void update(int l, int r) { push(); if (l > high || low > r) return; if (l <= low && high <= r) { apply(1); return; } int mid = (low + high) / 2; if (!left) left = new tree(low, mid); if (!right) right = new tree(mid + 1, high); left->update(l, r); right->update(l, r); int res = (left ? left->val : 0) + (right ? right->val : 0); this->val = res; } }; void solve() { int n, m; cin >> m; tree *root = new tree(0, 1e9 + 2); int c= 0 ; for (int i = 0, t, x, y; i < m; ++i) { // char c; int x, y; cin >> t >> x >> y; x += c; y += c; if (t == 2) { root->update(x, y); } else { if (x > y) swap(x, y); int z = root->query(x, y); cout << z << '\n'; c += z; } } delete root; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); freopen("f.in", "r", stdin); freopen("f.out", "w", stdout); #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif int tt = 1; // cin >> tt; while (tt--) { solve(); } return 0; }

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

apple.cpp: In function 'int32_t main()':
apple.cpp:116:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  116 |     freopen("f.in", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~
apple.cpp:117:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  117 |     freopen("f.out", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
apple.cpp:121:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  121 |     freopen("input.txt", "r", stdin);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
apple.cpp:122:12: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  122 |     freopen("output.txt", "w", stdout);
      |     ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...