Pagini recente » Cod sursa (job #995825) | Cod sursa (job #1187583) | Cod sursa (job #1767519) | Cod sursa (job #1617532) | Cod sursa (job #2011841)
#include <fstream>
using namespace std;
ifstream fin("multimi2.in");
ofstream fout("multimi2.out");
int n, i, crt, k, v[1000001], f[1000001];
char ok;
long long s1, s2, s;
int main(){
fin>>n;
if(n==2){
fout<<"1"<<"\n"<<"1"<<"\n"<<"2"<<"\n"<<"1"<<"\n"<<"1";
return 0;
}
for(i=1;i<=n;i++)
s+=i;
s1 = n;
s2 = s-s1;
k = 1;
v[1] = n;
crt = n;
long long dmin = max(s1-s2, s2-s1);
for(i=crt-1;i>0;i--){
crt=i;
while(s1<=s2 && crt>0){
s1 += crt;
s2 -=crt;
k++;
v[k] = crt;
crt--;
ok=0;
if( max(s1-s2, s2-s1) < dmin){
dmin = max(s1-s2, s2-s1);
ok=1;
}
}
if(crt == 0 && s1<=s2)
if(ok==0)
k--;
if(crt!=0 || (crt == 0 && s1>s2)){
crt++;
s1 -= crt;
s2 += crt;
k--;
}
}
fout<<dmin<<"\n";
fout<<k<<"\n";
for(i=k;i>0;i--){
fout<<v[i]<<" ";
f[v[i]] = 1;
}
fout<<"\n"<<n-k<<"\n";
for(i=1;i<=n;i++)
if(f[i] == 0)
fout<<i<<" ";
return 0;
}