Submission #761701

#TimeUsernameProblemLanguageResultExecution timeMemory
761701Kaztaev_Alisher새로운 문제 (POI11_met)C++17
0 / 100
136 ms65536 KiB
#include <bits/stdc++.h> #define ios ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) #define file(s) if (fopen(s".in", "r")) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout) #define all(a) a.begin() , a.end() #define F first #define S second using namespace std; using ll = long long; const ll N = 3e5+5, inf = 2e9 + 7; const ll INF = 1e18 , mod = 1e9+7 , P = 6547; ll a[N] , b[N] , l[N] , r[N] , c[N] , root[N] , sz , R[N*10] , L[N*10]; vector<ll> g[N]; ll laz[N*10]; ll upd(ll v, ll tl, ll tr, ll l , ll r , ll val){ if(tl > r || tr < l) return v; if(l <= tl && tr <= r) { ll nv = sz++; laz[nv] = laz[v] + val; L[nv] = L[v]; R[nv] = R[v]; return nv; } ll nv = sz++; ll tm = (tl + tr) >> 1; L[nv] = upd(L[v], tl, tm, l , r , val); R[nv] = upd(R[v], tm+1, tr, l , r , val); return nv; } ll get(ll v , ll tl , ll tr , ll pos){ if(tl == tr) return laz[v]; ll tm = (tl+tr) >> 1; if(tm >= pos) return get(L[v],tl,tm,pos) + laz[v]; else return get(R[v],tm+1,tr,pos)+laz[v]; } void solve(){ sz = 1; ll n, m; cin >> n >> m; for(ll i = 1; i <= m; i++) cin >> a[i] , g[a[i]].push_back(i); for(ll i = 1; i <= n; i++) cin >> b[i]; ll k; cin >> k; for(ll i = 1; i <= k; i++) { cin >> l[i] >> r[i] >> c[i]; root[i] = root[i-1]; if(l[i] > r[i]){ root[i] = upd(root[i],1,m,l[i],m,c[i]); root[i] = upd(root[i],1,m,1,r[i],c[i]); } else { root[i] = upd(root[i],1,m,l[i],r[i],c[i]); } } for(ll i = 1; i <= n; i++){ ll res = 0; for(ll l = 1 , r = k; l <= r;){ ll md = (l+r) >> 1; ll sum = 0; for(ll x : g[i]) { sum += get(root[md],1,m,x); } if(sum >= b[i]){ res = md; r = md-1; } else { l = md+1; } } if(res == 0){ cout << "NIE\n"; } else { cout << res << "\n"; } } } /* */ signed main(){ ios; solve(); 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...