Pagini recente » Cod sursa (job #2844892) | Cod sursa (job #177845) | Rating mmady2001 (mady2001) | Cod sursa (job #860006) | Cod sursa (job #1734536)
#include <fstream>
#include <math.h>
#include <algorithm>
#include <vector>
using namespace std;
#define ll long long
#define llu long long unsigned
#define pb push_back
#define mp make_pair
string problemName = "multimi2";
string inFile = problemName+".in";
string outFile = problemName+".out";
ifstream fin(inFile.c_str());
ofstream fout(outFile.c_str());
vector <int> mul1, mul2;
int main(){
int n,comp,i,j,turn;
comp = 0;
ll target;
fin>>n;
target = 1LL*n*(n+1)/4;
turn = 0;
if(n%4 == 0){
fout<<0<<'\n';
for(i = 1, j = n, turn = 0;i < j;i++, j--){
if(turn == 0){
mul1.pb(i);
mul1.pb(j);
}else{
mul2.pb(i);
mul2.pb(j);
}
turn ^= 1;
}
}else if(n%4 == 2){
fout<<1<<'\n';
for(i = 1, j = n, turn = 0;i + 1 < j - 1;i++, j--){
if(turn == 0){
mul1.pb(i);
mul1.pb(j);
}else{
mul2.pb(i);
mul2.pb(j);
}
turn ^= 1;
}
mul1.pb(i);
mul2.pb(j);
}else if(n%4 == 1){
fout<<1<<'\n';
ll sum = 0;
for(i = 1;i <= n && comp == 0 && sum != target;i++){
sum += i;
mul1.pb(i);
if(target-sum <= n){
comp = target-sum;
}
}
for(;i <= n;i++){
if(i == comp){
mul1.pb(i);
}else{
mul2.pb(i);
}
}
}else{
fout<<0<<'\n';
ll sum = 0;
for(i = n;i >= 1 && comp == 0 && sum != target;i--){
sum += i;
mul1.pb(i);
if(target-sum < i){
comp = target-sum;
}
}
for(;i >= 1;i--){
if(i == comp){
mul1.pb(i);
}else{
mul2.pb(i);
}
}
}
fout<<mul1.size()<<'\n';
for(auto it : mul1){
fout<<it<<' ';
}
fout<<'\n'<<mul2.size()<<'\n';
for(auto it : mul2){
fout<<it<<' ';
}
return 0;
}