제출 #362199

#제출 시각아이디문제언어결과실행 시간메모리
362199sumit_kk10Lottery (CEOI18_lot)C++14
45 / 100
437 ms65540 KiB
#include<bits/stdc++.h>
#define fast ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define ll long long int
using namespace std;
const int MOD = 1e9 + 7;
const int N = 1e4 + 5;
vector<int> ans[N];

void solve() {
    int n, k;
    cin >> n >> k;
    int a[n];
    for(int i = 0; i < n; ++i)
        cin >> a[i];
    for(int i = 0; i <= n - k; ++i) {
        for (int j = i + 1; j <= n - k; ++j) {
            if (i == j)
                continue;
            int diff = 0;
            for (int e = 0; e < k; ++e)
                if (a[i + e] != a[j + e])
                    ++diff;
            ans[i].push_back(diff);
            ans[j].push_back(diff);
        }
        sort(ans[i].begin(), ans[i].end());
    }
    cout << "\n";
    int q;
    cin >> q;
    while(q--){
        int dis;
        cin >> dis;
        for(int i = 0; i <= n - k; ++i){
            int low = 0, high = ans[i].size() - 1, ok = -1;
            while(low <= high){
                int mid = (low + high) / 2;
                if(ans[i][mid] <= dis){
                    ok = mid;
                    low = mid + 1;
                }
                else
                    high = mid - 1;
            }
            if(ok == -1) cout << "0 ";
            else cout << ok + 1 << " ";
        }
        cout << "\n";
    }
}

int main() {
    fast;
    int t = 1;
    // cin >> t;
    while(t--)
        solve();
    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...