답안 #267033

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
267033 2020-08-15T17:30:13 Z stefantaga Lottery (CEOI18_lot) C++14
0 / 100
642 ms 8696 KB
#include <bits/stdc++.h>

using namespace std;
int n,l,i,v[10005],nr,q,smen[10005][105],solutie[10005][105],j,numar,k,st,dr,mij,sol;
struct wow
{
    int poz,val;
}query[105];
map <int,int> m;
bool compare (wow a,wow b)
{
    return a.val<b.val;
}
void adauga (int numar,int loc,int spatiu)
{
    int st=1,dr=q,sol=0,mij;
    st=1;
            dr=q;
            sol=0;
            while (st<=dr)
            {
                mij=(st+dr)/2;
                if (query[mij].val<numar)
                {
                    sol=mij;
                    st=mij+1;
                }
                else
                {
                    dr=mij-1;
                }
            }
            smen[loc][sol+1]++;
            smen[loc+spatiu][sol+1]++;
}
int main()
{
    ios_base :: sync_with_stdio(false);
    cin.tie(0);
    #ifdef HOME
    ifstream cin("date.in");
    ofstream cout("date.out");
    #endif // HOME
    cin>>n>>l;
    for (i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    cin>>q;
    for (i=1;i<=q;i++)
    {
        cin>>query[i].val;
        query[i].poz=i;
    }
    sort (query+1,query+q+1,compare);
    for (i=1;i+l-1<=n;i++)
    {
        numar=0;
        for (j=1;j<=l;j++)
        {
            if (v[j]!=v[j+i])
            {
                numar++;
            }
        }
        adauga(numar,1,i);
        for (j=2;j+i+l-1<=n;j++)
        {
            if (v[j-1]!=v[j+i-1])
            {
                numar--;
            }
            if (v[j+l-1]!=v[j+l+i-1])
            {
                numar++;
            }
            adauga(numar,j,i);
        }
    }
    for (i=1;i<=n-l+1;i++)
    {
        for (j=1;j<=q;j++)
        {
            smen[i][j]+=smen[i][j-1];
            solutie[i][query[j].poz]+=smen[i][j];
        }
    }
    for (j=1;j<=q;j++)
    {
        for (i=1;i<=n-l+1;i++)
        {
            if (i==1)
            {
                solutie[i][j]--;
            }
            cout<<solutie[i][j]<<" ";
        }
        cout<<'\n';
    }
    return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 642 ms 8696 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 642 ms 8696 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -