Cod sursa(job #1399613)

Utilizator Athena99Anghel Anca Athena99 Data 24 martie 2015 20:32:32
Problema Plus Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <fstream>

using namespace std;

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

typedef long long i64;

int main(  ) {
    i64 s, x1, x2, x3, y1, y2, y3;
    fin>>s;
    fin>>x1>>y1>>x2>>y2>>x3>>y3;

    i64 mx2= max(x2*y2, (i64)0), mn2= min(x2*y2, (i64)0);
    i64 mx3= max(x3*y3, (i64)0), mn3= min(x3*y3, (i64)0);

    i64 sol= 0;
    for ( i64 cnt= 0; cnt<=x1; ++cnt ) {
        if ( y2==0 ) {
            if ( y3==0 && s==0 ) {
                sol= (i64)sol+(i64)(x2+1)*(x3+1);
            } else if ( y3!=0 ) {
                if ( s/y3<=x3 && s/y3>=0 ) {
                    sol= (i64)sol+x2+1;
                }
            }
        } else if ( y3==0 ) {
            if ( s/y2<=x2 && s/y2>=0 ) {
                sol= (i64)sol+x3+1;
            }
        } else {
            sol= (i64)sol+max((i64)0, min(s-mn2, mx3)-max(s-mx2, mn3)+1);
        }

        s-= y1;
    }

    fout<<sol<<"\n";

    return 0;
}