Pagini recente » Cod sursa (job #1362360) | Cod sursa (job #685464) | Cod sursa (job #1679834) | Cod sursa (job #686616) | Cod sursa (job #959274)
Cod sursa(job #959274)
#include<cstdio>
#include<deque>
using namespace std;
int sol,x1,y1,i,j,n,m,c1,c2,x[100],y[100],sum1,sum2,dr[100][100],ap[100][100];
char sir[40];
void back(int muchie)
{
int c1,c2,k;
if(sol==1) return ;
if(muchie==m+1)
{
if(dr[2][3]==2&&dr[3][1]==1&&dr[3][4]==1&&dr[1][2]==1&&dr[4][2]==1)
x1=0;
for(i=1;i<=n;i++)
{
sum1=0;
for(j=1;j<=n;j++)
if(ap[i][j]&&dr[i][j]!=0) sum1+=dr[i][j];
sum2=0;
for(j=1;j<=n;j++)
if(ap[j][i]&&dr[j][i]!=0) sum2+=dr[j][i];
if(sum1!=sum2) return ;
}
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(dr[i][j]!=0&&ap[i][j]) printf("%d %d %d\n",i,j,dr[i][j]);
sol=1;
return ;
}
c1=x[muchie];
c2=y[muchie];
for(k=1;k<=5;k++)
{
dr[c1][c2]=k;
back(muchie+1);
}
dr[c1][c2]=0;
c1=y[muchie];
c2=x[muchie];
for(k=1;k<=5;k++)
{
dr[c1][c2]=k;
back(muchie+1);
}
dr[c1][c2]=0;
}
int main()
{
freopen("nowhere-zero.in","r",stdin);
freopen("nowhere-zero.out","w",stdout);
scanf("%d",&n);
scanf("%d\n",&m);
for(i=1;i<=n;i++)
gets(sir+1);
for(i=1;i<=m;i++)
{
scanf("%d",&x1);
scanf("%d",&y1);
ap[x1][y1]=ap[y1][x1]=1;
x[i]=x1;
y[i]=y1;
}
back(1);
return 0;
}