Submission #521061

# Submission time Handle Problem Language Result Execution time Memory
521061 2022-01-31T16:46:44 Z lucri DEL13 (info1cup18_del13) C++17
0 / 100
23 ms 1344 KB
#include <iostream>
using namespace std;
int t,n,f[200010],q,ans[200010];
struct blocuri{int poz,nrs,fmax;}a[200010];
int main()
{
    cin>>t;
    while(t--)
    {
        ans[0]=0;
        cin>>n>>q;
        for(int i=2;i<=q+1;++i)
            cin>>f[i];
        f[q+2]=n+1;
        a[q+1].fmax=0;
        f[1]=0;
        ++q;
        for(int i=1;i<=q;++i)
        {
            a[i].poz=(f[i]+f[i+1])/2;
            if(f[i+1]-f[i]<=3)
            {
                a[i].nrs=0;
                a[i].fmax=f[i+1]-f[i]-1;
            }
            else
            {
                a[i].nrs=(f[i+1]-f[i]-4)/2;
                if((f[i+1]-f[i])%2==0)
                    a[i].fmax=3;
                else
                    a[i].fmax=4;
            }
            for(int j=1;j<=a[i].nrs;++j)
                ans[++ans[0]]=a[i].poz;
        }
        for(int i=1;i<=q;++i)
        {
            if(a[i-1].fmax==0&&a[i].fmax!=0&&a[i+1].fmax==0)
                ans[0]=-1;
            else if(a[i-1].fmax==0&&a[i].fmax!=0)
            {
                if(a[i].fmax>2)
                {
                    a[i].fmax-=2;
                    ans[++ans[0]]=a[i].poz;
                }
            }
            else if(a[i].fmax!=0)
            {
                a[i].fmax-=a[i-1].fmax;
                if(a[i].fmax<0)
                    ans[0]=-1;
                else if(a[i+1].fmax==0)
                {
                    if(a[i].fmax==2&&a[i-1].fmax!=0)
                    {
                        a[i].fmax-=2;
                        ans[++ans[0]]=a[i].poz;
                    }
                    else if(a[i].fmax!=0)
                        ans[0]=-1;
                }
                if(a[i].fmax>2)
                {
                    ans[++ans[0]]=a[i].poz;
                    a[i].fmax-=2;
                }
                if(a[i+1].fmax==1)
                {
                    if(a[i].fmax==2)
                    {
                        if(a[i-1].fmax!=0)
                        {
                            a[i].fmax-=2;
                            ans[++ans[0]]=a[i].poz;
                        }
                        else
                            ans[0]=-1;
                    }
                }
                if(ans[0]>=0)
                    for(int j=0;j<a[i-1].fmax;++j)
                        ans[++ans[0]]=f[i];
            }
            if(ans[0]<0)
                break;
        }
        cout<<ans[0]<<'\n';
        for(int i=1;i<=ans[0];++i)
            cout<<ans[i]<<' ';
        if(ans[0]>0)
            cout<<'\n';
    }
    return 0;
}
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 204 KB Output isn't correct
2 Incorrect 1 ms 204 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 204 KB Output isn't correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Incorrect 9 ms 332 KB Output isn't correct
4 Incorrect 9 ms 332 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 8 ms 588 KB Output isn't correct
2 Incorrect 8 ms 720 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 204 KB Output isn't correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Incorrect 9 ms 332 KB Output isn't correct
4 Incorrect 9 ms 332 KB Output isn't correct
5 Incorrect 2 ms 204 KB Output isn't correct
6 Incorrect 1 ms 204 KB Output isn't correct
7 Incorrect 2 ms 204 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 2 ms 204 KB Output isn't correct
2 Incorrect 1 ms 204 KB Output isn't correct
3 Incorrect 9 ms 332 KB Output isn't correct
4 Incorrect 9 ms 332 KB Output isn't correct
5 Incorrect 2 ms 204 KB Output isn't correct
6 Incorrect 1 ms 204 KB Output isn't correct
7 Incorrect 2 ms 204 KB Output isn't correct
8 Incorrect 23 ms 972 KB Output isn't correct
9 Incorrect 19 ms 716 KB Output isn't correct
10 Incorrect 21 ms 1068 KB Output isn't correct
11 Incorrect 17 ms 1344 KB Output isn't correct