제출 #865163

#제출 시각아이디문제언어결과실행 시간메모리
865163vjudge1새로운 문제 (POI11_met)C++17
74 / 100
6101 ms7512 KiB
	/*Lazy propagation 21
 *
 *
 * Imansoska228
 * Imancrush
 * Imantopchik
 * .*n*.
 * Author: Imansoska
 * Slishkom slab
**/
#include <bits/stdc++.h>
using namespace std;
	
#define ll long long
#define FF first
#define SS second
#define pb push_back
#define bp pop_back()
#define pf push_front
#define int long long
#define Imansoska ios_base::sync_with_stdio(0);cin.tie(0); cout.tie(0);
#define endl cout << "\n"
//#define input cin 
//#define print cout
	
const int N = 1e5 + 13 ;
const int maxn= 1e6+100;
const int MOD = 1e9 + 7;
const int INF = 1e9 + 7;
const int ima = 1e4 + 10;

int n , m , k , l , r , x;
int z[300000] , a[300000] , cnt[300000] , ans[300000];

signed main (/*Imansoska*/) {
	Imansoska
//	freopen("lepus.in","r",stdin);
//	freopen("lepus.out","w",stdout);
	cin >> n >> m;
	for ( int i=1; i<=m; i++ ) {
		cin >> z[i];
		cnt[z[i]]++;
	}
	for ( int i=1; i<=n; i++ ) {
		cin >> a[i];
	}
	cin >> k;
	for ( int i=1; i<=k; i++ ) {
		cin >> l >> r >> x;
		if ( l>r ) {
			for ( int lr=l; lr<=m; lr++ ) {
				if ( ans[z[lr]]==0 ) {
					a[z[lr]]-=x;
					if ( a[z[lr]]<=0 ) {
						ans[z[lr]]=i;
					}
				}
			}
			for ( int lr=1; lr<=r; lr++ ) {
				if ( ans[z[lr]]==0 ) {
					a[z[lr]]-=x;
					if ( a[z[lr]]<=0 ) {
						ans[z[lr]]=i;
					}
				}
			}
		}
		else {
			for ( int lr=l; lr<=r; lr++ ) {
				if ( ans[z[lr]]==0 ) {
					a[z[lr]]-=x;
					if ( a[z[lr]]<=0 ) {
						ans[z[lr]]=i;
					}
				}
			}
		}
	}
	for ( int i=1; i<=n; i++ ) {
		if ( ans[i]==0 ) {
			cout << "NIE";
			endl;
		}
		else {
			cout << ans[i];
			endl;
		}
	}
}
#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...