Cod sursa(job #466747)

Utilizator irene_mFMI Irina Iancu irene_m Data 27 iunie 2010 14:03:39
Problema Congr Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 1 Marime 1.13 kb
#include <cstdio>
#define infile "congr.in"
#define outfile "congr.out"
#define MaxN 300024

int P,L;
long long a[MaxN], v[MaxN],tt[MaxN];
int t[MaxN],nr[MaxN];
int poz;

void read()
{
      int i;
      scanf("%d",&P);
      i=2*P-1;
      for(;i;i--)
            scanf("%lld",&a[i]);
}

void solve()
{
      int i,j,n=2*P,m;

      for(i=1;i<n;i++)
      {
            v[++L]=a[i]; nr[L]=1; t[L]=0; tt[L]=i;
            m=L;

            for(j=1;j<m;j++)
                  if(nr[j]<P)
                  {
                        v[++L]=a[i]+v[j]; nr[L]=nr[j]+1; t[L]=j; tt[L]=i;
                        if(v[L]%P==0 && nr[L]==P)
                        {
                              poz=L;
                              return;
                        }
                  }
      }
}

void write()
{
      while(poz)
      {
            printf("%lld ",tt[poz]);
            poz=t[poz];
      }
}


int main()
{
      freopen(infile,"r",stdin);
      freopen(outfile,"w",stdout);

      read();
      solve();
      write();

      fclose(stdin);
      fclose(stdout);
      return 0;
}