Cod sursa(job #2338851)

Utilizator PetrescuAlexandru Petrescu Petrescu Data 7 februarie 2019 21:27:05
Problema Secv Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

using namespace std;

int main()
{
    int n, b, k, s, p, i, sus, jos, bsus, bjos;

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

    fin >> n >> b;

    fin >> k;

    bsus = bjos = 0;
    sus = 1 - b;
    jos = 0;

    for(i = 1; i <= k; i++)
    {
        fin >> s >> p;

        if(p == 1)
        {
            sus += s;
            jos += s;

            if(sus >= n)
            {
                sus = n;
                jos = n + b - 1;
            }
        }

        else
        {
            sus -= s;
            jos -= s;

            if(jos <= 0)
            {
                jos = 0;
                sus = 1 - b;
            }
        }
    }

    if(sus <= 0)
        bsus = 1 - sus;

    if(jos >= n)
        bjos = jos + 1 - n;

    fout << n + b - 1 << '\n';

    fout << bsus << " ";

    for(i = 1; i < n; i++)
    {
        if(sus <= i && i <= jos)
        {
            if(p == 2)fout << "1" << '\n' << "0 ";
            else fout << "0" << '\n' << "1 ";
        }
        else fout << "0" << '\n' << "0 ";
    }

    fout << bjos;

    fin.close();
    fout.close();

    return 0;
}