Submission #391129

#TimeUsernameProblemLanguageResultExecution timeMemory
391129Pichon5Meteors (POI11_met)C++17
24 / 100
6063 ms32212 KiB
#include<bits/stdc++.h> #define lcm(a,b) (a/__gcd(a,b))*b #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define ll long long int #define vi vector<int> #define vll vector<ll> #define pb push_back #define F first #define S second #define mp make_pair //salida rapida "\n" //DECIMALES fixed<<sp(n)<<x<<endl; //gcd(a,b)= ax + by //lCB x&-x //set.erase(it) - ersases the element present at the required index//auto it = s.find(element) //set.find(element) - iterator pointing to the given element if it is present else return pointer pointing to set.end() //set.lower_bound(element) - iterator pointing to element greater than or equal to the given element //set.upper_bound(element) - iterator pointing to element greater than the given element // | ^ //__builtin_popcount(x) using namespace std; ll T[400000]; int n,m,k; vector<vi>G; vi E; vll res; vector<pair<pair<int,int>,int > >Q;//estas son las queries void update(int pos, int val){ while(pos<=m){ T[pos]+=val; //cout<<pos<<" sumo "<<val<<endl; pos+=(pos&-pos); //cout<<"next "<<pos<<endl; } } ll query(int pos){ ll res=0; while(pos>0){ //cout<<"sumo "<<T[pos]<<endl; res+=T[pos]; pos-=(pos&-pos); } return res; } void parallel(int b, int e, vi q){ //cout<<b<<" "<<e<<endl; if(q.size()==0 or e<b)return ; ll mid=(b+e)/2; memset(T,0,sizeof T); for(int i=0;i<=mid;i++){ int l=Q[i].F.F,r=Q[i].F.S,val=Q[i].S; //cout<<"updateo "<<l<<" "<<r<<" "<<val<<endl; update(l,val); if(r<l){ //cout<<"updateo "<<r<<" "<<val<<endl; update(1,val); } update(r+1,-val); } vi A,B; for(int i=0;i<q.size();i++){ ll sum=0; for(auto it : G[q[i]]){ sum+=query(it); //cout<<it<<" = "<<query(it)<<endl; } //cout<<q[i]<<" "<<mid<<" "<<sum<<endl; if(sum>=E[q[i]]){ A.pb(q[i]); res[q[i]]=min(res[q[i]],mid+1); }else{ B.pb(q[i]); } } parallel(mid+1,e,B); parallel(b,mid-1,A); } int main() { int x; cin>>n>>m; G.assign(n+1,vi()); E.resize(n+1);res.assign(n+1,1e9); for(int i=1;i<=m;i++){ cin>>x; G[x].pb(i); } for(int i=1;i<=n;i++){ cin>>E[i]; } int l,r,val; cin>>k; for(int i=0;i<k;i++){ cin>>l>>r>>val; Q.pb({{l,r},val}); } vi aux; for(int i=1;i<=n;i++)aux.pb(i); parallel(0,k-1,aux); for(int i=1;i<=n;i++){ if(res[i]==1e9){ cout<<"NIE"<<endl; }else{ cout<<res[i]<<endl; } } return 0; }

Compilation message (stderr)

met.cpp: In function 'void parallel(int, int, std::vector<int>)':
met.cpp:62:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |     for(int i=0;i<q.size();i++){
      |                 ~^~~~~~~~~
#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...