Cod sursa(job #1398594)

Utilizator Athena99Anghel Anca Athena99 Data 24 martie 2015 12:18:01
Problema Plus Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>

using namespace std;

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

typedef long long i64;

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

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

    i64 sol= 0;
    for ( int 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 ) {
                    sol= (i64)sol+x2+1;
                }
            }
        } else if ( y3==0 ) {
            if ( s/y2<=x2 && s>=y2 ) {
                sol= (i64)sol+x3+1;
            }
        } else {
            sol= (i64)sol+max(0, min(s-mn2, mx3)-max(s-mx2, mn3)+1);
        }

        s-= y1;
    }

    fout<<sol<<"\n";

    return 0;
}