Cod sursa(job #965659)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 24 iunie 2013 13:35:20
Problema Plus Scor 25
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.08 kb
#include <iostream>
#include <fstream>

using namespace std;

long long result;
long long sum, a[4];

int main()
{
    ifstream f ("plus.in");
    f>>sum;
    long long i, x, y;
    for (i=1; i<=3; i++)
    {
        f>>x>>y;
        if (y == -1)
            a[1] += x;
        else
            if (y == 0)
                a[2] += x;
            else
                a[3] += x;
    }
    f.close();
    if (a[3] >= sum)
    {
        result += a[2] + 1; /// adaug doar de 1 ca sa fac sum si apoi adaug 0 in toate modurile posibile adica a[2] + 1
        /// pentru diferenta de la sum la a[3] la fiecare pas adaug i de 1 si scad i de 1
        ///si pentru fiecare pas pot adauga zerouri in toate modurile posibile
        ///(atata timp cat mai am si -1 destui)
        for (i=1; i<=a[3] - sum; i++)
            if (a[1] > 0)
            {
                a[1]--;
                result += a[2] + 1;
            }
            else
                i = a[3] - sum + 1;
    }

    ofstream g("plus.out");
    g<<result<<"\n";
    g.close();

    return 0;
}