Submission #259349

#TimeUsernameProblemLanguageResultExecution timeMemory
259349karmaWeighting stones (IZhO11_stones)C++14
100 / 100
73 ms6524 KiB
#include <bits/stdc++.h> #define pb emplace_back #define ll long long #define fi first #define se second #define mp make_pair //#define int int64_t using namespace std; const int N = 1e5 + 7; const int inf = 1e9 + 1; typedef pair<int, int> pii; int l[N << 2], h[N << 2], lz[N << 2], mx[N << 2], mn[N << 2]; int n, r, s; void build(int x, int low, int high) { l[x] = low, h[x] = high; if(l[x] == h[x]) return; int mid = low + high >> 1; build(x << 1, low, mid); build(x << 1 | 1, mid + 1, high); } void push(int x, int v) { mx[x] += v, mn[x] += v, lz[x] += v; } void down(int x) { if(l[x] == h[x] || lz[x] == 0) return; push(x << 1, lz[x]); push(x << 1 | 1, lz[x]); lz[x] = 0; } void update(int x, int low, int high, int val) { down(x); if(l[x] > high || h[x] < low) return; if(low <= l[x] && h[x] <= high) { push(x, val); return; } update(x << 1, low, high, val); update(x << 1 | 1, low, high, val); mx[x] = max(mx[x << 1], mx[x << 1 | 1]); mn[x] = min(mn[x << 1], mn[x << 1 | 1]); } int32_t main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); #define Task "test" if(fopen(Task".inp", "r")) { freopen(Task".inp", "r", stdin); freopen(Task".out", "w", stdout); } cin >> n; build(1, 1, n); for(int i = 1; i <= n; ++i) { cin >> r >> s; update(1, 1, r, s == 1? 1: -1); if(mn[1] >= 0 && mx[1] > 0) cout << ">\n"; else if(mn[1] < 0 && mx[1] <= 0) cout << "<\n"; else cout << "?\n"; } }

Compilation message (stderr)

stones.cpp: In function 'void build(int, int, int)':
stones.cpp:21:19: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
     int mid = low + high >> 1;
               ~~~~^~~~~~
stones.cpp: In function 'int32_t main()':
stones.cpp:55:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
         freopen(Task".inp", "r", stdin);
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
stones.cpp:56:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
         freopen(Task".out", "w", stdout);
         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...