Cod sursa(job #254736)

Utilizator DjSefuWrong name DjSefu Data 7 februarie 2009 13:56:28
Problema Planeta Scor 10
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.8 kb
#include<stdio.h>
#include<string.h>
FILE *f=fopen("planeta.in","r"),
     *g=fopen("planeta.out","w");
long long k,i,j,n,a[35],p,v[35],r,l,kt[35],z;
int verif()
{ memset(v,0,sizeof(v));
  for(int i=1;i<=n;++i) if(v[a[i]]) return 0;
                    else ++v[a[i]];
  for(int i=1;i<n-1;++i) for(int j=i+1;j<n;++j) for(int k=j+1;k<=n;++k) if(a[i]<a[j]&&a[j]>a[k]&&a[i]>a[k]) return 0;
  return 1;
}
void afis()
{ for(int i=1;i<=n;++i) fprintf(g,"%lld ",a[i]);
}
int main()
{ fscanf(f,"%lld %lld",&n,&k);
  p=1;
  while(p) if(z==k) p=0;
  else if(p>n) if(verif()) ++z,a[p]=0,--p;
                   else a[p]=0,--p;
           else if(a[p]>=n) a[p]=0,--p;
                else { ++a[p];
                       ++p;
                       }  
  afis();
  fclose(f);
  fclose(g);
  return 0;
}