Cod sursa(job #3222550)

Utilizator TimofeiFilipTimofei Filip Emanuel TimofeiFilip Data 10 aprilie 2024 20:49:34
Problema Multimi2 Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.07 kb
#include <fstream>
#include <iostream>
#include <cmath>
using namespace std;

ifstream fin("multimi2.in");
ofstream fout("multimi2.out");

int v[1000002];
long long s[1000002];

int main() {
    int n, i, j, nrcf1, nrcf2;
    long long dif, si, sj;
    fin >> n;
    for (i = 1; i <= n; i++) {
        v[i] = i;
    }
    s[0] = v[0];
    for (i = 1; i <= n; i++) {
        s[i] = s[i - 1] + v[i];
    }

    i = 1;
    dif = 999999999;
    nrcf1 = nrcf2 = -1;

    while (i < n) {
        si = s[i];
        sj = s[n] - s[i];
        if (abs(si - sj) < dif) {
            dif = abs(si - sj);
            nrcf1 = i;
            nrcf2 = n - i;
        }
        if (abs(sj - si) < dif) {
            dif = abs(sj - si);
            nrcf1 = n - i;
            nrcf2 = i;
        }
        i++;
    }

    fout << dif << endl;
    fout << nrcf1 << endl;
    for (i = 1; i <= nrcf1; i++) {
        fout << v[i] << ' ';
    }
    fout << endl;
    fout << nrcf2 << endl;
    for (i = nrcf1 + 1; i <= n; i++) {
        fout << v[i] << ' ';
    }
    fin.close();
    fout.close();
    return 0;
}