Pagini recente » Cod sursa (job #1580659) | Cod sursa (job #2631973) | Cod sursa (job #510024) | Cod sursa (job #92197) | Cod sursa (job #483643)
Cod sursa(job #483643)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream f ("dame.in");
ofstream g ("dame.out");
const int MaxN = 1001;
int N,dim,v[MaxN];
void solve()
{
int i,x;
if(( N % 12 == 3)||(N % 12 == 9))
{
for( i = 2 ; i << 1 < N ; i++ )
v[i-1] = i << 1;
v[i-1] = 2;
}
else
for( i = 1 ; i << 1 <= N ; i++ )
v[i] = i << 1 ;
dim = i - 1;
if( N % 12 == 8)
{
x = 3;
for( i = dim + 1 ; i < N ; i += 2)
v[i] = x, v[i+1] = x - 2 , x += 4;
}
else
if( N % 12 == 2)
{
v[++dim] = 3; v[++dim] = 1;
x = 7;
for(i = dim + 1 ; i < N ; i++ )
v[i] = x , x += 2;
v[N] = 5;
}
else
if(( N % 12 == 3)||(N % 12 == 9))
{
x = 5;
for( i = dim + 1 ; i <= N - 2 ; i++)
v[i] = x , x += 2;
v[N - 1]= 1; v[N] = 3;
}
dim = N;
}
void print()
{
int i;
if( N == 1 || N == 2)
g << "1\n1 1\n";
else
if(N == 3)
g << "2\n1 1\n2 3\n";
else
{
g << N << '\n';
for( i = 1 ; i <= N ; i++)
g << i << ' ' << v[i] << '\n';
}
}
int main ()
{
f >> N ;
solve();
print();
f.close();
g.close();
return 0;
}