Cod sursa(job #741986)

Utilizator SteveStefan Eniceicu Steve Data 27 aprilie 2012 19:31:36
Problema Multimi2 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <cstring>

using namespace std;

int N;

void Citire ()
{
    ifstream fin ("multimi2.in");
    fin >> N;
    fin.close ();
}

void Business ()
{
    char v[1000010];
    long long a;
    int x = 0;
    if (N & 1)
    {
        a = (N + 1) >> 1;
        a *= N;
    }
    else
    {
        a = N >> 1;
        a *= (N + 1);
    }
    ofstream fout ("multimi2.out");
    fout << (a & 1) << "\n";
    memset (v, 0, sizeof (v));
    a >>= 1;
    for (int i = N; i >= 1; i--)
    {
        if (a > i)
        {
            v[i] = 1;
            a -= i;
            x++;
        }
        else
        {
            x++;
            v[a] = 1;
            break;
        }
    }
    fout << x << "\n";
    for (int i = 1; i <= N; i++)
    {
        if (v[i]) fout << i << " ";
    }
    fout << "\n" << N - x << "\n";
    for (int i = 1; i <= N; i++)
    {
        if (!v[i]) fout << i << " ";
    }
    fout.close ();
}

int main ()
{
    Citire ();
    if (N == 1)
    {
        ofstream fout ("multimi2.out");
        fout << "1\n1\n1\n0";
        fout.close ();
        return 0;
    }
    Business ();
    return 0;
}