Cod sursa(job #122392)

Utilizator pandaemonAndrei Popescu pandaemon Data 12 ianuarie 2008 02:44:42
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>

int n,k,m; short 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]++; var1=v[i-1];
   while(v[i]<=n)
   if(dus[v[i]][1]==var1 || dus[v[i]][2]==var1 || dus[v[i]][3]==var1 || 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("%sd ",v[i]);

  printf("\n");}