Pagini recente » Cod sursa (job #3246910) | Cod sursa (job #3271113) | Cod sursa (job #2770467) | Cod sursa (job #417378) | Cod sursa (job #485523)
Cod sursa(job #485523)
# include <algorithm>
using namespace std ;
# define x first
# define y second
typedef long long ll ;
const char FIN[] = "plus.in", FOU[] = "plus.out" ;
pair < int, int > V[3], C[3] ;
int S ;
inline int between(int x, int lft, int rgt) {
return lft <= x && x <= rgt;
}
int main ( void ) {
freopen ( FIN, "r", stdin ) ;
scanf ( "%d", &S ) ;
for ( int i = 0; i < 3; ++i ) {
scanf ( "%d %d", &V[i].x, &V[i].y ) ;
if ( V[i].y == -1 ) {
C[i].x = -V[i].x ;
} else {
C[i].y = V[i].x ;
}
}
ll sol = 0 ;
for ( int i = 0; i <= V[0].x ; ++i ) {
int aux = S - i * V[0].y ;
if ( V[1].y == 0 ) {
if ( V[2].y == 0) {
sol += ( aux == 0 ) * ( ll ) ( V[1].x + 1 ) * ( V[2].x + 1 );
} else {
sol += ( C[2].x <= aux && aux <= C[2].y ) * ( V[1].x + 1 ) ;
}
} else {
if ( V[2].y == 0 ) {
sol += ( C[1].x <= aux && aux <= C[1].y ) * ( V[2].x + 1 ) ;
} else {
sol += max ( 0, min ( aux - C[1].x, C[2].y ) - max ( aux - C[1].y, C[2].x ) + 1 ) ;
}
}
}
fprintf ( fopen ( FOU, "w" ) , "%lld", sol ) ;
}