Submission #112305

#TimeUsernameProblemLanguageResultExecution timeMemory
112305redaLottery (CEOI18_lot)C++14
45 / 100
3086 ms9464 KiB
#include <bits/stdc++.h>
#define MAXN 10005
using namespace std;
int arr[MAXN];
int dp[MAXN][MAXN]={0};
int ans[MAXN];
int main ()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,l,k,q;
    cin>>n>>l;
    for(int i=1;i<=n;i++)
        cin>>arr[i];
    if(n<=2000){
    for(int i=1;i<=n-l+1;i++)
    {
        for(int j=i+1;j<=n-l+1;j++)
        {
            int x=0;
            for(int p=0;p<l;p++)
                if (arr[i+p]!=arr[j+p])x++;
            dp[j][x]++;
            dp[i][x]++;
        }
    }
    for(int i =1; i<=n-l+1; i++)
        for (int j =0; j<= l; j++)
                dp[i][j+1]+= dp[i][j];
    cin>>q;
    while(q--)
    {
        cin>>k;
        for(int i=1;i<=n-l+1;i++)
            cout<<dp[i][k]<<' ';
        cout<<endl;
    }
    }
    else
    {
        cin>>q>>k;
            for (int i=1;i<=n-l+1;i++)
            {
                for (int j =i+1;j<=n-l+1;j++)
                {
                    int x=0;
                    for(int p=0;p<l;p++)
                        if (arr[i+p]!=arr[j+p])x++;
                    if(x<=k)
                    {
                    ans[i] ++;
                    ans[j] ++;
                    }
                }
            cout <<ans[i]<<' ';
            }
    }
    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...