Pagini recente » Istoria paginii utilizator/traianq | Istoria paginii utilizator/bigsarpe | Cod sursa (job #224768) | Florin Uncu | Cod sursa (job #2013414)
#include <fstream>
#include <algorithm>
using namespace std;
long long n,x,i,j,k,k2,nr,sum;
int v[1000001],w[1000001];
ifstream fin ("multimi2.in");
ofstream fout ("multimi2.out");
int main (){
fin>>n;
if (n%2 == 0){
if (n%4 == 0){
fout<<0<<"\n"<<n/2<<"\n";
x = n/4;
i = 1;
j = n;
k = 0;
while (x != 0){
v[++k] = i;
v[++k] = j;
i++;
j--;
x--;
}
x = n/4;
k2 = 0;
while (x != 0){
w[++k2] = i;
w[++k2] = j;
i++;
j--;
x--;
}
sort (v+1,v+k+1);
sort (w+1,w+k2+1);
for (i=1;i<=k;i++)
fout<<v[i]<<" ";
fout<<"\n"<<k2<<"\n";
for (i=1;i<=k2;i++)
fout<<w[i]<<" ";
}
else{
x = (n*(n+1)/2)/2;
k = 0;
sum = 0;
for (i=n;i>=1;i--){
if (sum + i < x){
sum += i;
v[++k] = i;
}
else{
v[++k] = x-sum;
nr = x-sum;
break;
}
}
k2 = 0;
for (;i>=1;i--)
if (i != nr)
w[++k2] = i;
if ( (n*(n+1)/2) %2 == 0)
fout<<0<<"\n";
else
fout<<1<<"\n";
fout<<k<<"\n";
sort (v+1,v+k+1);
for (i=1;i<=k;i++)
fout<<v[i]<<" ";
fout<<"\n"<<k2<<"\n";
sort (w+1,w+k2+1);
for (i=1;i<=k2;i++)
fout<<w[i]<<" ";
}
}
else{
x = n*(n+1)/2;
if (x % 2 == 0)
fout<<0<<"\n";
else
fout<<1<<"\n";
x /= 2;
k = 0;
sum = 0;
for (i=n;i>=1;i--){
if (sum + i < x){
sum += i;
v[++k] = i;
}
else{
v[++k] = x-sum;
nr = x-sum;
break;
}
}
k2 = 0;
for (;i>=1;i--)
if (i != nr)
w[++k2] = i;
sort (v+1,v+k+1);
sort (w+1,w+k2+1);
fout<<k<<"\n";
for (i=1;i<=k;i++)
fout<<v[i]<<" ";
fout<<"\n"<<k2<<"\n";
for (i=1;i<=k2;i++)
fout<<w[i]<<" ";
}
return 0;
}