Submission #1050162

#TimeUsernameProblemLanguageResultExecution timeMemory
1050162antonLottery (CEOI18_lot)C++17
20 / 100
163 ms928 KiB
#include<bits/stdc++.h>

using namespace std;
#define ll long long
int N, L, Q;
int A;

const int MOD = 1e9+7;

int dist(vector<int>& a, vector<int>& b){
    int d= 0;
    for(int i = 0; i<L; i++){
        if(a[i]!=b[i]){
            d++;
        }
    }
    return d;
}

ll mhash(vector<int>& v){
    ll r= 1;
    for(int i = 0; i<v.size(); i++){
        r = ((ll)(v[i]) + r*A)%MOD;
    }
    return r;
}
signed main(){
    cin>>N>>L;

    vector<int> a(N);

    srand(time(NULL));
    A = rand();

    for(int i = 0; i<N; i++){
        cin>>a[i];
    }

    vector<int> inter_hash;
    map<int, int> oc;

    for(int i = 0; i<N-L+1; i++){
        vector<int> inter;
        for(int j = i; j<i+L; j++){
            inter.push_back(a[j]);
        }
        inter_hash.push_back(mhash(inter));
        oc[inter_hash.back()]++;
    }

    cin>>Q;

    for(int i = 0; i<Q; i++){
        int k;
        cin>>k;
        for(int j = 0; j<N-L+1; j++){
            cout<<oc[inter_hash[j]]-1<<" ";
        }
        cout<<endl;
    }


}

Compilation message (stderr)

lot.cpp: In function 'long long int mhash(std::vector<int>&)':
lot.cpp:22:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |     for(int i = 0; i<v.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...