제출 #1148409

#제출 시각아이디문제언어결과실행 시간메모리
1148409adlin새로운 문제 (POI11_met)C++20
74 / 100
6091 ms5148 KiB
#include <bits/stdc++.h>
#define pb push_back
#define F first
#define S second
#define all(v) v.begin(),v.end()

using namespace std;

typedef long long ll;

const int maxn = 3e5 + 5;

int n,m,k,a[maxn],p[maxn];

ll b[maxn];

ll sum[maxn];

int ans[maxn];	

int main(){
	
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	
	cin >> n >> m;
	
	for(int i = 1; i <= m; i++) cin >> a[i];
	for(int i = 1; i <= n; i++) cin >> p[i];
	cin >> k;
	for(int i = 1; i <= k; i++){
		int l,r,x;
		cin >> l >> r >> x;
		if(l > r){
			for(int j = l; j <= m; j++){
				b[j] += x;
			}
			for(int j = 1; j <= r; j++){
				b[j] += x;
			}
		}
		else {
			for(int j = l; j <= r; j++){
				b[j] += x;
			}
		}
		for(int j = 1; j <= n; j++){
			sum[j] = 0;
		}
		for(int j = 1; j <= m; j++){
			sum[a[j]] += b[j];
		}
		for(int j = 1; j <= n; j++){
			if(sum[j] >= p[j]){
				if(!ans[j]){
					ans[j] = i;
				}
			}
		}
	}
	
	for(int i = 1; i <= n; i++){
		if(ans[i]) cout << ans[i] << '\n';
		else cout << "NIE\n";
	}
	
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...