Cod sursa(job #2768708)

Utilizator DragosC1Dragos DragosC1 Data 11 august 2021 21:44:11
Problema Multimi2 Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
#include <iostream>
using namespace std;

int n;

void read() {
    ifstream f("multimi2.in");
    f >> n;
    f.close();
}

bool viz[1000001];
bool dif;
int nr1, nr2;
int a[1000001];
int b[1000001];

void solve() {
    int i, j;
    long long sum = 1LL * n * (n + 1) / 2;
    if (sum % 2 == 0) dif = 0;
    else dif = 1;
    sum /= 2;
    for (i = n; i >= 1; i--)
        if (sum - i >= 0) {
            sum -= i;
            viz[i] = 1;
            a[++nr1] = i;
        }
    for (i = 1, j = nr1; i <= j; i++, j--)
        swap(a[i], a[j]);
    for (i = 1; i <= n; i++)  
        if (!viz[i]) 
            b[++nr2] = i;
}

void output() {
    int i;
    ofstream g("multimi2.out");
    g << dif << '\n';
    g << nr1 << '\n';
    for (i = 1; i <= nr1; i++)
        g << a[i] << ' ';
    g << '\n' << nr2 << '\n';
    for (i = 1; i <= nr2; i++)
        g << b[i] << ' ';
    g.close();
}

int main() {
    read();
    solve();
    output();
    return 0;
}