Pagini recente » Istoria paginii runda/oni18_d2/clasament | Cod sursa (job #2014644) | Cod sursa (job #2495129) | Cod sursa (job #2502956) | Cod sursa (job #2009628)
#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 = 2; i <= N / 2; i += 2){
A[++k1] = i; A[++k1] = N-i+2;
B[++k2] = i+1; B[++k2] = N-i+1;
}
A[++k1] = 1;
dif = 1;
return;
}
void Case_3(){
for(i = 3; i <= N / 2; i += 2){
A[++k1] = i; A[++k1] = N-i+3;
B[++k2] = i+1; B[++k2] = N-i+2;
}
A[++k1] = 1;
B[++k2] = 2;
dif = 1;
return;
}
void Case_4(){
for(i = 4; i <= N/2+1; i += 2){
A[++k1] = i; A[++k1] = N-i+4;
B[++k2] = i+1; B[++k2] = N-i+3;
}
A[++k1] = 1;
A[++k1] = 2;
B[++k2] = 3;
dif = 0;
return;
}
int main()
{
fin >> N;
if(N % 4 == 0) Case_1();
else if(N % 4 == 1) Case_2();
else if(N % 4 == 2) Case_3();
else if(N % 4 == 3) Case_4();
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 0;
}