# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
41314 | 2018-02-15T21:30:11 Z | wzy | Meteors (POI11_met) | C++11 | 2930 ms | 58504 KB |
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") using namespace std; #define F first #define S second #define pii pair<int,int> #define pb push_back int n ,m , k , ans[300005] , qt[300005] , l[300005] , r[300005] ; long long bit[300005] ; vector<int> own[300005]; vector<int> sweep[300005]; pair<pii , int> querys[300005]; void upd(int x , int v){ for(int i = x ; i < 300005; i += (i&-i)){ bit[i] += v; } return; } long long gt(int x){ long long s = 0; for(int i = x ; i > 0 ; i -=(i&-i)){ s+= bit[i]; } return s; } void update(int l , int r , int v){ if(l <= r){ upd(l , v); upd(r + 1 , -v); } else{ upd(l , v); upd(1 , v); upd(r + 1 , -v); } return; } long long query(int x){ return gt(x); } int32_t main(){ scanf("%d%d" , &n , &m); for(int i = 1 ; i <= m;i++){ int x; scanf("%d" , &x); own[x].pb(i); } for(int i = 1 ; i <= n;i++) scanf("%d" , &qt[i]); scanf("%d" , &k); for(int i = 1 ; i <= k ; i++){ scanf("%d%d%d" , &querys[i].F.F , &querys[i].F.S , &querys[i].S); } for(int i = 1 ; i <= n;i++) l[i] = 1 , r[i] = k , ans[i] = -1; while(true){ bool cabou = true; for(int i = 1 ; i <= n; i++){ if(l[i] <= r[i]){ sweep[(l[i] + r[i])/2].pb(i); cabou = false; } } if(cabou) break; for(int i = 1 ; i <= m + 1 ; i++) bit[i] = 0; for(int i = 1 ; i <= k ; i++){ update(querys[i].F.F , querys[i].F.S , querys[i].S); while(sweep[i].size()){ int u = sweep[i].back(); sweep[i].pop_back(); long long sj = 0; bool deu = false; for(int w = 0 ; w < own[u].size() ; w++){ int v = own[u][w]; sj += query(v); if(sj >= qt[u]){ deu = true; break; } } if(deu){ if(l[u] == r[u]) ans[u] = i , r[u] = -1; else r[u] = i; } else{ if(l[u] == r[u]) r[u] = -1; else l[u] = i + 1; } } } } for(int i = 1 ; i <= n; i++){ if(ans[i] == -1) puts("NIE"); else printf("%d\n" , ans[i] ); } }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 15 ms | 14456 KB | Output is correct |
2 | Correct | 15 ms | 14512 KB | Output is correct |
3 | Correct | 16 ms | 14612 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 15 ms | 14640 KB | Output is correct |
2 | Correct | 15 ms | 14716 KB | Output is correct |
3 | Correct | 15 ms | 14740 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 117 ms | 16480 KB | Output is correct |
2 | Correct | 230 ms | 18652 KB | Output is correct |
3 | Correct | 182 ms | 18652 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 181 ms | 18652 KB | Output is correct |
2 | Correct | 208 ms | 18652 KB | Output is correct |
3 | Correct | 227 ms | 18700 KB | Output is correct |
4 | Correct | 51 ms | 18700 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 166 ms | 18700 KB | Output is correct |
2 | Correct | 243 ms | 19244 KB | Output is correct |
3 | Correct | 162 ms | 19244 KB | Output is correct |
4 | Correct | 169 ms | 19244 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 200 ms | 19244 KB | Output is correct |
2 | Correct | 192 ms | 19244 KB | Output is correct |
3 | Correct | 136 ms | 19244 KB | Output is correct |
4 | Correct | 213 ms | 20004 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1731 ms | 34712 KB | Output is correct |
2 | Correct | 950 ms | 34712 KB | Output is correct |
3 | Correct | 831 ms | 34712 KB | Output is correct |
4 | Correct | 2794 ms | 54640 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 1639 ms | 54640 KB | Output is correct |
2 | Correct | 999 ms | 54640 KB | Output is correct |
3 | Correct | 705 ms | 54640 KB | Output is correct |
4 | Correct | 2930 ms | 58504 KB | Output is correct |