Pagini recente » Cod sursa (job #346747) | Cod sursa (job #551867) | Cod sursa (job #2018763) | Cod sursa (job #222533) | Cod sursa (job #1104083)
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> v;
vector <int> :: iterator it;
int debugv[1005];
int n;
void dumpv() {
int p = 0;
vector <int> :: iterator it;
for (it = v.begin();it != v.end();it++) debugv[p++] = *it;
}
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);
}
dumpv();
for (int i=1;i<=n;i+=2) v.push_back(i);
dumpv();
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;
dumpv();
}
}
dumpv();
if (n%12 == 2) {
vector <int> :: iterator ct;
vector <int> :: iterator tc;
tc = it+1;
ct = tc+1;
swap(*ct,*tc);
ct++;
v.erase(ct);
v.push_back(5);
}
dumpv();
if (n%12 == 3 || n%12 == 9) {
vector <int> :: iterator ct;
vector <int> :: iterator tc;
tc = it+1;
ct = tc+1;
v.erase(ct);
v.erase(tc);
v.push_back(1);
v.push_back(3);
}
dumpv();
printf("%d\n",v.size());
int i = 1;
for (it=v.begin();it!=v.end();it++) {
printf("%d %d \n",i++,*it);
}
return 0;
}