Pagini recente » Cod sursa (job #2557148) | Cod sursa (job #985038) | Cod sursa (job #3039820) | Cod sursa (job #2365729) | Cod sursa (job #1918770)
#include <cstdio>
#define MAXN 1000
int v[MAXN + 1];
int main(){
FILE *in = fopen("dame.in", "r");
int n, i, j, p, aux;
fscanf(in, "%d", &n);
fclose(in);
j = 1;
if(n % 12 == 3 || n % 12 == 9)
j = n / 2;
for(i = 1; i * 2 <= n; i++){
v[j] = i * 2;
j++;
if(j > n / 2)
j = 1;
}
p = n / 2 + 1;
switch(n % 12){
case 8:
for(i = 0; 2 * i + 1 <= n; i++)
v[p + i] = 2 * i + 1;
j = p;
for(i = 1; i + 2 <= n; i += 4){
aux = v[j]; v[j] = v[j + 1]; v[j + 1] = aux;
j += 2;
}
break;
case 2:
j = p;
v[j] = 3;
j++;
v[j] = 1;
j++;
for(i = 7; i <= n; i += 2)
v[j++] = i;
v[j] = 5;
break;
case 3:
case 9:
j = p;
for(i = 5; i <= n; i += 2)
v[j++] = i;
v[j++] = 1;
v[j++] = 3;
break;
default:
for(i = 0; 2 * i + 1 <= n; i++)
v[p + i] = 2 * i + 1;
break;
}
FILE *out = fopen("dame.out", "w");
if(n == 1 || n == 2)
fprintf(out, "1\n1 1\n");
else if(n == 3)
fprintf(out, "2\n1 1\n2 3\n");
else{
fprintf(out, "%d\n", n);
for(i = 1; i <= n; i++)
fprintf(out, "%d %d\n", i, v[i]);
}
fclose(out);
return 0;
}