Cod sursa(job #122317)

Utilizator pandaemonAndrei Popescu pandaemon Data 11 ianuarie 2008 20:26:00
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include<stdio.h>

int n,k,m; int v[1001],dus[1001][4]; char gasit[1001];

int main()
{freopen("dusman.in","r",stdin);
 freopen("dusman.out","w",stdout);

scanf("%d %d %d",&n,&k,&m);

int var1=0,var2=0,i;

for(i=1;i<=m;i++)
{scanf("%d %d",&var1,&var2);
 dus[var1][++dus[var1][0]]=var2;
 dus[var2][++dus[var2][0]]=var1;}

 i=1; v[0]=-1;

 while(k>0)
 if(i==n+1) {k--; i--;}
 else
  {
   gasit[v[i]]=0; v[i]++;
   while(v[i]<=n)
   if(dus[v[i]][1]==v[i-1] || dus[v[i]][2]==v[i-1] || dus[v[i]][3]==v[i-1] || gasit[v[i]]==1)
   v[i]++;
   else {gasit[v[i]]=1; i++; break;}

   if(v[i]==n+1) {v[i]=0; i--;}}

  for(i=1;i<=n;i++) printf("%d ",v[i]);

  printf("\n");}