Pagini recente » Cod sursa (job #2938523) | Cod sursa (job #2730377) | Cod sursa (job #2363688) | Cod sursa (job #1957509) | Cod sursa (job #2490483)
#include <fstream>
using namespace std;
ifstream cin("multimi2.in");
ofstream cout("multimi2.out");
int N, k,a,b,dif;
bool viz[1000100];
int main()
{
cin>>N;
if(N%4==0)
{
cout<<0<<'\n'<<N/2<<'\n';
for(int i=1; i<=N; ++i)
{
k=i/4;
if((k%2==0 && i%4==1) || (k%2==1 && i%4==0) || (k%2==1 && i%4==2) || (k%2==1 && i%4==3))
cout<<i<<' ', viz[i]=1;
}
cout<<'\n'<<N/2<<'\n';
for(int i=1; i<=N; ++i)
if(!viz[i])
cout<<i<<' ';
}
else if(N%4==3)
{
cout<<0<<'\n'<<(N/2)+1<<'\n';
cout<<1<<' '<<2<<' ';
a=4; b=7; dif=3; viz[1]=viz[2]=1;
for(int i=4; i<=N; ++i)
{
if(a==i || i==b)
cout<<i<<' ',viz[i]=1;
else if(i>b)
{
dif=4-dif;
a=b+2; b=a+dif;
}
}
cout<<'\n'<<(N/2)<<'\n';
for(int i=1; i<=N; ++i)
if(!viz[i])
cout<<i<<' ';
}
else{
cout<<1<<'\n';
if(N%4==2)
{
cout<<(N/2)<<'\n';
cout<<1<<' ';
viz[1]=1;
a=3; b=6; dif=3;
for(int i=3; i<=N; ++i)
{
if(a==i || i==b)
cout<<i<<' ',viz[i]=1;
else if(i>b)
{
dif=4-dif;
a=b+2; b=a+dif;
}
}
cout<<'\n'<<(N/2)<<'\n';
for(int i=1; i<=N; ++i)
if(!viz[i])
cout<<i<<' ';
}
else{
cout<<(N/2)+1<<'\n';
cout<<1<<' ';
viz[1]=1;
a=2; b=5; dif=3;
for(int i=2; i<=N; ++i)
{
if(a==i || i==b)
cout<<i<<' ',viz[i]=1;
else if(i>b)
{
dif=4-dif;
a=b+2; b=a+dif;
}
}
cout<<'\n'<<(N/2)<<'\n';
for(int i=1; i<=N; ++i)
if(!viz[i])
cout<<i<<' ';
}
}
return 0;
}