Submission #78349

#TimeUsernameProblemLanguageResultExecution timeMemory
78349igziLottery (CEOI18_lot)C++17
100 / 100
2205 ms11056 KiB
#include <bits/stdc++.h> #define maxN 10005 using namespace std; vector <int> v; vector <pair<int,int>> u; int n,l,q,k[maxN][105],s[2*maxN],ans[105],x,i,j; void update(int koji,int p){ //cout<<koji<<" "<<p<<endl; while(p<=u.size()){ k[koji][p]++; p+=p & (-p); } } int query(int koji,int p){ int ans=0; while(p>0){ ans+=k[koji][p]; p-=p & (-p); } return ans; } void ispisi(int x){ int i,j; for(i=0;i<u.size();i++){ if(u[i].second==x){ for(j=0;j<n-l+1;j++) cout<<query(j,i+1)<<" "; } } cout<<endl; } int main() { cin>>n>>l; for(i=0;i<n;i++){ cin>>x; v.push_back(x); } cin>>q; for(i=0;i<q;i++){ cin>>x; u.push_back({x,i}); } sort(u.begin(),u.end()); for(i=1;i<=n-l;i++){ for(j=i;j<n;j++){ s[j]=s[j-1]; if(v[j]==v[j-i]) s[j]++; //cout<<j<<" "<<s[j]<<endl; } for(j=0;j+l+i-1<n;j++){ int tmp,p; tmp=s[j+l+i-1]-s[j+i-1]; p=lower_bound(u.begin(),u.end(),make_pair(l-tmp,-5))-u.begin(); //cout<<j<<" "<<i<<" "<<p<<endl; update(j,p+1); update(j+i,p+1); } for(j=0;j<n;j++) s[j]=0; } for(i=0;i<q;i++) ispisi(i); return 0; }

Compilation message (stderr)

lot.cpp: In function 'void update(int, int)':
lot.cpp:12:8: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 while(p<=u.size()){
       ~^~~~~~~~~~
lot.cpp: In function 'void ispisi(int)':
lot.cpp:29:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
 for(i=0;i<u.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...