제출 #1297193

#제출 시각아이디문제언어결과실행 시간메모리
1297193AnphatWeighting stones (IZhO11_stones)C++20
100 / 100
30 ms3620 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define f first #define s second #define sz(a) ((int)(a).size()) #define all(a) (a).begin(), (a).end() #define uni(a) sort(all(a)), (a).resize(unique(all(a)) - (a).begin()) typedef pair <int, int> ii; const int N = 1e5 + 10; int n, mx[N << 2], mn[N << 2], lz[N << 2]; void push(int id) { if (lz[id] == 0) return; mx[id << 1] += lz[id]; mx[id << 1 | 1] += lz[id]; mn[id << 1] += lz[id]; mn[id << 1 | 1] += lz[id]; lz[id << 1] += lz[id]; lz[id << 1 | 1] += lz[id]; lz[id] = 0; } void upd(int l, int r, int id, int u, int v, int x) { if (l > v || r < u) return; if (l >= u && r <= v) { mx[id] += x; mn[id] += x; lz[id] += x; return; } push(id); int mid = (l + r) >> 1; upd(l, mid, id << 1, u, v, x); upd(mid + 1, r, id << 1 | 1, u, v, x); mx[id] = max(mx[id << 1], mx[id << 1 | 1]); mn[id] = min(mn[id << 1], mn[id << 1 | 1]); } void solve() { cin >> n; for (int i = 1; i <= n; i++) { int r, s; cin >> r >> s; upd(1, n, 1, 1, r, s == 1 ? 1 : -1); if (mx[1] >= 1 && mn[1] <= -1) { cout << "?\n"; continue; } if (mx[1] <= 0 && mn[1] <= -1) { cout << "<\n"; continue; } if (mx[1] >= 1 && mn[1] >= 0) { cout << ">\n"; continue; } cout << "trolllllllll\n"; } } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("a.inp", "r", stdin); // freopen("a.out", "w", stdout); int t = 1; // cin >> t; while (t--) { solve(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...