Pagini recente » Cod sursa (job #238469) | Cod sursa (job #1569814) | Cod sursa (job #1277353) | Cod sursa (job #1711256) | Cod sursa (job #1179953)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> v;
vector <int> :: iterator it;
int n;
int main() {
freopen("dame.in","r",stdin);
freopen("dame.out","w",stdout);
scanf("%d",&n);
if (n==2) {
printf("1\n1 1\n");
return 0;
}
if (n==3) {
printf("2\n1 1\n2 3\n");
return 0;
}
for (int i=2;i<=n;i+=2) v.push_back(i);
if (n%12 == 3 || n%12 == 9) {
v.erase(v.begin());
v.push_back(2);
}
for (int i=1;i<=n;i+=2) v.push_back(i);
if (n%12 == 8) {
vector <int> :: iterator ct;
vector <int> :: iterator tc;
tc = v.begin()+n/2;
ct = tc+1;
while (tc != v.end() && ct != v.end()) {
swap(*tc,*ct);
tc = ct+1;
ct = tc+1;
}
}
if (n%12 == 2) {
vector <int> :: iterator ct;
vector <int> :: iterator tc;
tc = v.begin()+n/2;
ct = tc+1;
swap(*ct,*tc);
ct++;
v.erase(ct);
v.push_back(5);
}
if (n%12 == 3 || n%12 == 9) {
vector <int> :: iterator ct;
vector <int> :: iterator tc;
tc = v.begin()+n/2;
ct = tc+1;
v.erase(ct);
v.erase(tc);
v.push_back(1);
v.push_back(3);
}
printf("%d\n",v.size());
int i = 1;
for (it=v.begin();it!=v.end();it++) printf("%d %d \n",i++,*it);
return 0;
}