# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
29280 | 2017-07-19T01:04:06 Z | 김동현(#1164) | Meteors (POI11_met) | C++14 | 6000 ms | 23552 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int, int> pii; int n, m, k, l[300010], r[300010], s[300010], e[300010], st[300010], nx[300010]; vector<pii> qv; ll p[300010], a[300010]; const int sz = 524288; struct Seg{ ll dat[2 * sz]; void ini(){ fill(dat + 1, dat + 2 * sz, 0); } void upd(int s, int e, ll v){ for(s += sz, e += sz; s <= e; s /= 2, e /= 2){ if(s % 2 == 1) dat[s++] += v; if(e % 2 == 0) dat[e--] += v; } } ll get(int x){ ll ret = 0; for(x += sz; x; x /= 2) ret += dat[x]; return ret; } } S; int main(){ scanf("%d%d", &n, &m); for(int i = 1, x; i <= m; i++){ scanf("%d", &x); nx[i] = st[x]; st[x] = i; } for(int i = 1; i <= n; i++) scanf("%lld", p + i); scanf("%d", &k); for(int i = 1; i <= k; i++) scanf("%d%d%lld", l + i, r + i, a + i); fill(s + 1, s + n + 1, 1); fill(e + 1, e + n + 1, k); while(1){ qv.clear(); for(int i = 1; i <= n; i++){ if(s[i] <= e[i]) qv.push_back(pii((s[i] + e[i]) / 2, i)); } if(qv.empty()) break; S.ini(); int t = 0; for(int i = 1; i <= k; i++){ if(l[i] <= r[i]) S.upd(l[i], r[i], a[i]); else{ S.upd(l[i], m, a[i]); S.upd(1, r[i], a[i]); } for(; t < qv.size() && qv[t].first == i; t++){ int c = qv[t].second; ll cs = 0; for(int j = st[c]; j; j = nx[j]) cs += S.get(j); if(cs >= p[c]) e[c] = i - 1; else s[c] = i + 1; } } } for(int i = 1; i <= n; i++){ if(s[i] > k) puts("NIE"); else printf("%d\n", s[i]); } }
Compilation message
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 263 ms | 21932 KB | Output is correct |
2 | Correct | 116 ms | 21932 KB | Output is correct |
3 | Correct | 673 ms | 21932 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 473 ms | 21932 KB | Output is correct |
2 | Correct | 143 ms | 21932 KB | Output is correct |
3 | Correct | 1899 ms | 21932 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2729 ms | 22072 KB | Output is correct |
2 | Execution timed out | 6000 ms | 22400 KB | Execution timed out |
3 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 6000 ms | 22204 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 6000 ms | 22072 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 6000 ms | 21932 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 6000 ms | 23552 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Execution timed out | 6000 ms | 23552 KB | Execution timed out |
2 | Halted | 0 ms | 0 KB | - |