# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
29283 | 2017-07-19T01:08:43 Z | 김동현(#1164) | Meteors (POI11_met) | C++14 | 3343 ms | 25092 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; sort(qv.begin(), qv.end()); 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 = min(p[c], 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 | 9 ms | 21936 KB | Output is correct |
2 | Correct | 6 ms | 21936 KB | Output is correct |
3 | Correct | 13 ms | 21936 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 9 ms | 21936 KB | Output is correct |
2 | Correct | 6 ms | 21936 KB | Output is correct |
3 | Correct | 9 ms | 21936 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 209 ms | 22076 KB | Output is correct |
2 | Correct | 293 ms | 22404 KB | Output is correct |
3 | Correct | 249 ms | 22208 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 243 ms | 22208 KB | Output is correct |
2 | Correct | 253 ms | 22208 KB | Output is correct |
3 | Correct | 319 ms | 22404 KB | Output is correct |
4 | Correct | 93 ms | 22208 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 146 ms | 22076 KB | Output is correct |
2 | Correct | 183 ms | 22404 KB | Output is correct |
3 | Correct | 126 ms | 21936 KB | Output is correct |
4 | Correct | 253 ms | 22404 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 269 ms | 21936 KB | Output is correct |
2 | Correct | 256 ms | 22208 KB | Output is correct |
3 | Correct | 216 ms | 21936 KB | Output is correct |
4 | Correct | 289 ms | 22404 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2619 ms | 23556 KB | Output is correct |
2 | Correct | 999 ms | 21936 KB | Output is correct |
3 | Correct | 596 ms | 21936 KB | Output is correct |
4 | Correct | 3343 ms | 25092 KB | Output is correct |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Correct | 2809 ms | 23556 KB | Output is correct |
2 | Correct | 989 ms | 21936 KB | Output is correct |
3 | Correct | 489 ms | 21936 KB | Output is correct |
4 | Correct | 2963 ms | 25092 KB | Output is correct |