Submission #497058

# Submission time Handle Problem Language Result Execution time Memory
497058 2021-12-22T09:14:08 Z Ierus Meteors (POI11_met) C++17
74 / 100
3302 ms 65540 KB
#include<bits/stdc++.h>
using namespace std;
#define F first
#define S second
#define sz size()
#define pb push_back
#define int long long
#define all(x) (x).begin(),(x).end()
#define NFS ios_base::sync_with_stdio(0) , cin.tie(0) , cout.tie(0) ;
const int N = 3e5+5;
int n, m, que, t[N<<2];
void U(int l, int r, int val, int v, int tl, int tr){
	if(tl > r || tr < l) return;
	if(l <= tl && tr <= r){
		t[v] += val;
		return;
	}
	int tm = (tl + tr) >> 1;
	U(l,r,val,v<<1,tl,tm);
	U(l,r,val,v<<1|1,tm+1,tr);
}
int G(int pos, int v, int l, int r){
	if(l == r) return t[v];
	int m = (l + r) >> 1;
	if(pos <= m) return G(pos,v<<1,l,m) + t[v];
	else return G(pos,v<<1|1,m+1,r) + t[v];
}
vector<int> g[N], ans(N, -1), tocheck[N];;
int p[N], Q[N], L[N], R[N];
struct{int l, r, a;}q[N];
signed main(){
	NFS;
	cin >> n >> m;
	for(int i = 1; i <= m; ++i){
		int x; cin >> x;
		g[x].pb(i);
	}
	for(int i = 1; i <= n; ++i){
		cin >> p[i];
	}
	cin >> que;
	for(int i = 1; i <= que; ++i){
		cin >> q[i].l >> q[i].r >> q[i].a;
	}
	for(int i = 1; i <= n; ++i){
		L[i] = 1, R[i] = que+1;
	}
	bool ok = 1;
	while(ok){
		ok = false;
		memset(t, 0, sizeof(t));
		for(int i = 1; i <= n; ++i){
			if(L[i] != R[i]){
				tocheck[(L[i]+R[i])/2].pb(i);
			}
		}
		for(int i = 1; i <= que; ++i){
			if(q[i].l > q[i].r){
				U(q[i].l, m, q[i].a, 1, 1, m);
				U(1, q[i].r, q[i].a, 1, 1, m);
			}else{
				U(q[i].l, q[i].r, q[i].a, 1, 1, m);
			}
			while(!tocheck[i].empty()){
				ok = true;
				int id = tocheck[i].back();
				tocheck[i].pop_back();
				int sum = 0;
				for(auto x : g[id]){
					sum += G(x, 1, 1, m);
					if(sum >= p[id]){
						break;
					}
				}
				if(sum >= p[id]){
					ans[id] = i;
					R[id] = i;
				}else L[id] = i + 1;
			}
		}
	}
	for(int i = 1; i <= n; ++i){
		if(L[i] > que) cout << "NIE\n";
		else cout << ans[i] << '\n';
	}
}





# Verdict Execution time Memory Grader output
1 Correct 26 ms 26236 KB Output is correct
2 Correct 26 ms 26248 KB Output is correct
3 Correct 33 ms 26188 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 22 ms 26248 KB Output is correct
2 Correct 24 ms 26272 KB Output is correct
3 Correct 26 ms 26340 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 315 ms 28756 KB Output is correct
2 Correct 377 ms 32012 KB Output is correct
3 Correct 406 ms 31044 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 350 ms 30264 KB Output is correct
2 Correct 344 ms 30216 KB Output is correct
3 Correct 363 ms 32436 KB Output is correct
4 Correct 89 ms 29164 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 178 ms 29256 KB Output is correct
2 Correct 241 ms 32436 KB Output is correct
3 Correct 161 ms 27400 KB Output is correct
4 Correct 371 ms 31568 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 313 ms 27932 KB Output is correct
2 Correct 296 ms 30196 KB Output is correct
3 Correct 326 ms 28396 KB Output is correct
4 Correct 399 ms 33672 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3292 ms 57140 KB Output is correct
2 Correct 1110 ms 35660 KB Output is correct
3 Correct 771 ms 32276 KB Output is correct
4 Runtime error 2045 ms 65540 KB Execution killed with signal 9
# Verdict Execution time Memory Grader output
1 Correct 3302 ms 55284 KB Output is correct
2 Correct 830 ms 35656 KB Output is correct
3 Correct 620 ms 31068 KB Output is correct
4 Runtime error 1742 ms 65540 KB Execution killed with signal 9