Pagini recente » Cod sursa (job #9689) | Cod sursa (job #1190082) | Cod sursa (job #771503) | Cod sursa (job #2044797) | Cod sursa (job #1183943)
#include<fstream>
using namespace std;
int a[1003];
// N != 6k + 2
void dame1(int N){
int N2 = N / 2;
for(int i = 1; i<= N2; ++i)
{
a[i] = 2 * i;
a[N2 + i] = 2 * i - 1;
}
}
// N != 6*k
void dame2(int N){
int N2 = N / 2;
for(int i=1;i<=N2; ++i)
{
a[i] = 1 + (2 * i + N2 - 3) % N;
a[N + 1 - i] = N - (2 * i + N2 - 3) % N;
}
}
void solve(int N){
if(N&1)
{
a[N] = N;
--N;
}
if(N % 6 != 2) dame1(N);
else dame2(N);
}
int main(){
ifstream cin("dame.in");
ofstream cout("dame.out");
int N,i,j;
cin>>N;
if(N <= 2)
{
cout<<"1\n1 1\n";
return 0;
}
if(N==3)
{
cout<<"2\n1 1\n3 2\n";
return 0;
}
solve(N);
cout<<N<<'\n';
for(i=1;i<=N;++i) cout<<i<<' '<<a[i]<<'\n';
return 0;
}