Pagini recente » Cod sursa (job #2319520) | Cod sursa (job #2148752) | Cod sursa (job #1160215) | Cod sursa (job #1619252) | Cod sursa (job #3468)
Cod sursa(job #3468)
#include<fstream.h>
int long 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;
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");
for(i=1;i<=n;i++)
for(j=1;j<=k;j++)
if(m[i][j])
{g<<i<<" "<<m[i][j]<<'\n';
m[m[i][j]][next[i][j]]=0;
}
g.close();
return 0;
}