Pagini recente » Cod sursa (job #165483) | Cod sursa (job #2392274) | Profil rstoica | Cod sursa (job #3159330) | Cod sursa (job #800424)
Cod sursa(job #800424)
#include<fstream>
using namespace std;
#define NMAX 1002
int l[NMAX],a;
void move(int x, int nr)
{
int i,j;
for(i=1;i<=nr;i++)
if(l[i]==x)
break;
for(j=i;j<=nr-1;j++)
l[j]=l[j+1];
l[nr]=x;
}
int main ()
{
int n,i,nr;
ifstream f("dame.in");
ofstream g("dame.out");
f>>n;
f.close();
if(n==1 || n==2) {
g<<"1"<<'\n'<<"1 1";
g.close();
return 0;
}
else if(n==3) {
g<<"2"<<'\n'<<"1 1\n"<<"3 2";
g.close();
return 0;
}
nr=0;
if(n%3==0) {
for(i=4;i<=n;i++)
l[++nr]=i;
l[++nr]=2;
}
else
for(i=2;i<=n;i=i+2)
l[++nr]=i;
a=nr;
for(i=1;i<=n;i=i+2)
l[++nr]=i;
if(n%6==2) {
swap(l[a+1],l[a+2]);
move(5,nr);
}
else if(n%6==3) {
move(1,nr);
move(2,nr);
}
g<<n<<'\n';
for(i=1;i<=nr;i++)
g<<i<<" "<<l[i]<<'\n';
g.close();
return 0;
}