Cod sursa(job #2123610)

Utilizator sichetpaulSichet Paul sichetpaul Data 6 februarie 2018 14:06:07
Problema Multimi2 Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>

using namespace std;
int a[1000001],b[1000001];
int main()
{ int n,i,j,x,y,st,dr;
long long sum1,sum2;
    ifstream f("multimi2.in");
    ofstream g("multimi2.out");
    f>>n;
    if (n%2==1) {
        x=2,y=1;
    a[1]=1,a[2]=2,b[1]=3;
    sum1=sum2=3;
    for (i=4;i<=n;++i) {
        j=i+1;
        if (sum1==sum2) {
            ++x,++y;
            a[x]=j,b[y]=i;
        }
        else {
            ++x,++y;
            a[x]=i,b[y]=j;
        }
        sum1+=a[x],sum2+=b[y];
        i=j;
    }
    }
    else {
       sum1=n,sum2=1;
       x=1,y=1;
       a[1]=n,b[1]=1;
       st=2,dr=n-1;
       for (i=2;i<=n/2;++i) {
           ++x,++y;
           if (sum1<=sum2) {
                sum1+=dr;a[x]=dr;
                sum2+=st;b[y]=st;
           }
           else {
                sum1+=st;a[x]=st;
                sum2+=dr;b[y]=dr;
           }
           ++st,--dr;
       }
    }
    if (b[y]>n) sum2-=b[y],--y;
    if (sum1<sum2) g<<sum2-sum1<<'\n';
    else g<<sum1-sum2<<'\n';
    g<<x<<'\n';
    for (i=1;i<=x;++i)
        g<<a[i]<<" ";
    g<<'\n'<<y<<'\n';
    for (i=1;i<=y;++i)
        g<<b[i]<<" ";
    return 0;
}