Pagini recente » Cod sursa (job #2715796) | Cod sursa (job #499578) | Cod sursa (job #209293) | Borderou de evaluare (job #365890) | Cod sursa (job #48388)
Cod sursa(job #48388)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("dame.in");
ofstream out("dame.out");
int n;
int a[1600];
int main()
{
in >> n;
int r = n % 12;
int k = 0;
for ( int i = 2; i <= n; i += 2 )
a[k++] = i;
if ( r == 3 || r == 9 )
{
a[k++] = 2;
a[0] = -1;
}
int poz1 = k;
for ( int i = 1; i <= n; i += 2 )
a[k++] = i;
if ( r == 8 )
for ( int i = poz1; i <= n; i += 2 )
{
int t = a[i];
a[i] = a[i+1];
a[i+1] = t;
}
if ( r == 2 )
{
int t = a[poz1];
a[poz1] = a[poz1+1];
a[poz1+1] = t;
a[k++] = 5;
a[poz1+2] = -1;
}
if ( r == 3 || r == 9 )
{
a[poz1] = -1;
a[poz1+1] = -1;
a[k++] = 1;
a[k++] = 3;
}
if ( n == 1 || n >= 4 )
out << n << endl;
else
out << n-1 << endl;
int cnt = 0;
for ( int i = 0; i < k; ++i )
if ( a[i] != -1 )
out << i+1-cnt << " " << a[i] << endl;
else
++cnt;
return 0;
}