Pagini recente » Cod sursa (job #311458) | Cod sursa (job #871803) | Cod sursa (job #1368540) | Cod sursa (job #3270693) | Cod sursa (job #187463)
Cod sursa(job #187463)
#include<fstream.h>
struct nod
{
int c,l;
};
nod a[1001];
int n;
ofstream fout("dame.out");
void citire()
{
ifstream fin("dame.in");
fin>>n;
fin.close();
}
void afisare()
{
int i;
fout<<n<<'\n';
for(i=1;i<=n;i++)
fout<<a[i].l<<' '<<a[i].c<<'\n';
}
void dame()
{
int i,k=n/2+n%2,aux;
for(i=1;i<=k;i++)
a[i].c=i*2, a[i].l=i;
if(n%12==3 || n%12==9)
{
a[1].l=k;
for(i=2;i<k;i++)
a[i].l=i;
}
for(i=k+1,aux=1;i<=n;i++,aux=aux+2)
a[i].c=aux, a[i].l=i;
if(n%12==8)
for(i=k+1;i<=n;i=i+2)
{
aux=a[i].l;
a[i].l=a[i+1].l;
a[i+1].l=aux;
}
if(n%12==2)
{
aux=a[k+1].l;
a[k+1].l=a[k+2].l;
a[k+2].l=aux;
a[k+3].l=n;
for(i=k+4;i<=n;i++)
a[i].l--;
}
if(n%12==3 || n%12==9)
{
a[k+1].l=n-1;
a[k+2].l=n;
for(i=k+3;i<n;i++)
a[i].l-=2;
}
afisare();
}
int main()
{
citire();
if(n==2)
{fout<<'1'<<'\n'; fout<<"1 1\n";}
else
if(n==3)
{fout<<"2\n"; fout<<"1 1\n"; fout<<"2 3\n";}
else
dame();
fout.close();
return 0;
}