Submission #644042

#TimeUsernameProblemLanguageResultExecution timeMemory
644042ttamxMeteors (POI11_met)C++14
24 / 100
6094 ms19752 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef tuple<int,int,int> t3; const int N=3e5+5; struct fenwick{ ll tree[N]={}; void init(){ for(int i=0;i<N;++i)tree[i]=0; } void add(int i,ll v){ while(i<N){ tree[i]+=v; i+=i&-i; } } ll read(int i){ ll sum=0; while(i>0){ sum+=tree[i]; i-=i&-i; } return sum; } }f; int n,m,k; int o[N],l[N],r[N],ans[N]; ll p[N]; vector<t3> v; int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> m; for(int i=1;i<=m;++i)cin >> o[i]; for(int i=1;i<=n;++i)cin >> p[i]; cin >> k; v.emplace_back(0,0,0); for(int i=1;i<=k;++i){ int a,b,c; cin >> a >> b >> c; v.emplace_back(a,b,c); } for(int i=1;i<=n;++i)l[i]=1,r[i]=k+1; while(true){ vector<int> res[N]; int cnt=0; for(int i=1;i<=n;++i){ if(l[i]>=r[i])continue; res[(l[i]+r[i])/2].emplace_back(i); ++cnt; } if(cnt==0)break; for(int i=1;i<=k;++i){ if(res[i].empty())continue; f.init(); for(int j=1;j<=i;++j){ auto [a,b,c]=v[j]; f.add(a,c); f.add(b+1,-c); if(b<a){ f.add(1,c); f.add(m+1,-c); } } ll sum[N]={}; for(int j=1;j<=m;++j)sum[o[j]]+=f.read(j); for(auto j:res[i]){ if(sum[j]>=p[j])r[j]=i; else l[j]=i+1; if(l[j]>=r[j])ans[j]=r[j]; } } } for(int i=1;i<=n;++i){ if(ans[i]<=k)cout << ans[i] << '\n'; else cout << "NIE" << '\n'; } return 0; }

Compilation message (stderr)

met.cpp: In function 'int main()':
met.cpp:62:22: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   62 |                 auto [a,b,c]=v[j];
      |                      ^
#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...