Pagini recente » Monitorul de evaluare | Cod sursa (job #1937556) | Cod sursa (job #157024) | Profil BlueMoon | Cod sursa (job #1387949)
#include <fstream>
#define DIM 1000000
using namespace std;
ifstream fin ("multimi2.in" );
ofstream fout("multimi2.out");
int N, i, j, k, ok, k1, k2;
int A[DIM], B[DIM], dif;
void Case_1(){
for(i = 1; i <= N / 2; i += 2){
A[++k1] = i; A[++k1] = N-i+1;
B[++k2] = i+1; B[++k2] = N-i;
}
dif = 0;
return;
}
void Case_2(){
for(i = 1; i <= N / 2 - 2; i += 2){
A[++k1] = i; A[++k1] = N-i+1;
B[++k2] = i+1; B[++k2] = N-i;
}
A[++k1] = N / 2;
B[++k2] = N / 2 + 1;
dif = 1;
return;
}
void Case_3(){
A[++k1] = 1;
A[++k1] = 2;
B[++k2] = 3;
for(i = 4; i <= N; i += 2)
A[++k1] = i;
for(i = 5; i <= N; i += 2)
B[++k2] = i;
dif = 0;
return;
}
void Case_4(){
A[++k1] = 1;
A[++k1] = 3;
A[++k1] = 4;
B[++k2] = 2;
B[++k2] = 5;
for(i = 6; i <= N; i += 2)
A[++k1] = i;
for(i = 7; i <= N; i += 2)
B[++k2] = i;
dif = 1;
return;
}
void Switch(){
fin >> N;
if(N % 4 == 0)
Case_1();
else
if(N % 2 == 0)
Case_2();
else
if((N - 3) % 2 == 0)
Case_3();
else
if((N - 3) % 2 == 1)
Case_4();
return;
}
void Finish(){
fout << dif << "\n";
fout << k1 << "\n";
for(i = 1; i <= k1; i ++)
fout << A[i] << " ";
fout << "\n";
fout << k2 << "\n";
for(i = 1; i <= k2; i ++)
fout << B[i] << " ";
return;
}
int main(){
Switch();
Finish();
return 0;
}