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...