Pagini recente » Cod sursa (job #2375821) | Cod sursa (job #1597057) | Cod sursa (job #49533) | Cod sursa (job #98231) | Cod sursa (job #3643)
Cod sursa(job #3643)
#include<fstream.h>
#include<stdio.h>
int viz[10001],m[10001][52],next[10001][52],vizit[10001],i,j,jj,k,n,nr;
int main()
{ifstream f("kreg.in");
//f>>k>>n;
k=50;n=10000;
for(i=1;i<=k+1;i++)
for(j=i+1;j<=k+1;j++)
{m[i][++m[i][0]]=j;
next[i][m[i][0]]=++m[j][0];
m[j][m[j][0]]=i;
}
for(i=k+2;i<=n;i++)
{
for(j=1,nr=0;nr<k/2;j++)
if(!viz[j])
for(jj=1;jj<=k;jj++)
if(!viz[m[j][jj]])
{nr++;
vizit[++vizit[0]]=j;
vizit[++vizit[0]]=m[j][jj];
m[i][++m[i][0]]=j;
m[i][++m[i][0]]=m[j][jj];
viz[j]=viz[m[j][jj]]=1;
m[m[j][jj]][next[j][jj]]=i;
next[m[j][jj]][next[j][jj]]=m[i][0];
next[j][jj]=m[i][0]-1;
m[j][jj]=i;
break;
}
for(j=1;j<=vizit[0];j++)
vizit[j]=viz[vizit[j]]=0;
vizit[0]=0;
}
//ofstream g("kreg.out");
freopen("kreg.out","w",stdout);
for(i=1;i<=n;i++)
for(j=1;j<=k;j++)
if(m[i][j])
{//g<<i<<" "<<m[i][j]<<'\n';
printf("%d ",i);
printf("%d\n",m[i][j]);
m[m[i][j]][next[i][j]]=0;
}
// g.close();
fclose(stdout);
return 0;
}