Cod sursa(job #2147624)

Utilizator Cosmin2004_InfoMoldoveanu Cosmin Cosmin2004_Info Data 28 februarie 2018 21:03:07
Problema Trapez Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.38 kb
#include <cstdio>

using namespace std;
struct TURN{
    int nr=-1,values[1001];
};
TURN v[1001],v2[1001];
void copyv(int n){
    for(int i=0;i<n;i++)
    {
        v[i].nr=v2[i].nr;
        for(int j=1;j<=v[i].nr;j++)
        {
            v[i].values[j]=v2[i].values[j];
        }
    }
}

int main()
{
    freopen("zid.in","r",stdin);
    freopen("zid.out","w",stdout);
    int n,i,x,j,k;
    scanf("%d", &n);
    v[0].nr++;v2[0].nr++;
    for(i=1;i<=n;i++)
    {
        scanf("%d", &x);
        for(j=0;j<n;j++)
        {
            if(v[j].nr!=-1)
            {
                if(v[(j+x)%n].nr==-1)
                {
                    v2[(j+x)%n].nr=v[j].nr+1;
                    for(k=1;k<=v[j].nr;k++)
                    {
                        v2[(j+x)%n].values[k]=v[j].values[k];
                    }
                    v2[(j+x)%n].values[k]=x;
                }
            }
            if((j+x)%n==0 && v[j].nr!=-1)
            {
                v2[0].nr=v[j].nr+1;
                for(k=1;k<=v[j].nr;k++)
                {
                    v2[0].values[k]=v[j].values[k];
                }
                v2[0].values[k]=x;
            }
        }
        copyv(n);
        if(v[0].nr>0)break;
    }
    printf("%d\n", v[0].nr);
    for(i=1;i<=v[0].nr;i++)
    {
        printf("%d ",v[0].values[i]);
    }
    return 0;
}