Submission #322383

#TimeUsernameProblemLanguageResultExecution timeMemory
322383Karen124Lottery (CEOI18_lot)C++14
25 / 100
15 ms4588 KiB

#include <bits/stdc++.h>
     
using namespace std;
     
#define ll long long int 
#define F first
#define S second
#define pb push_back
 
const ll N = 300 + 10;
const ll LOG = 50;
const ll MOD = 1e9 + 7;
const ll INF = 1e9 + 10;
int n, q, len, a[N], Q[N];
vector <int> all[N][N];
int main() {
    cin >> n >> len;
    if (n <= 300){
        for (int i = 1; i <= n; i++) cin >> a[i];
        for (int i = 1; i <= n - len + 1; i++){
            for (int j = 1; j <= n - len + 1; j++){
                if (i == j) continue;
                int dif = 0;
                for (int k = 0; k < len; k++){
                    dif += (a[i + k] != a[j + k]);
                }
                for (int k = dif; k <= len; k++) all[i][k].pb(j);
            }
        }
        for (int i = 1; i <= n - len + 1; i++){
            for (int j = 0; j <= len; j++){
                sort(all[i][j].begin(), all[i][j].end());
                all[i][j].resize(unique(all[i][j].begin(), all[i][j].end()) - all[i][j].begin());
            }
        }
        cin >> q;
        for (int i = 0; i < q; i++){
            cin >> Q[i];
        }
        for (int i = 0; i < q; i++){
            for (int j = 1; j <= n - len + 1; j ++){
                cout << all[j][Q[i]].size() << ' ';
            }
            cout << '\n';
        }
    }
    else return 0;
}
#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...