int main() { freopen("t.in", "r", stdin); scanf("%lld%lld%d", &L, &R, &upper); ll res = 0; for ( ll x = L; x <= R; x ++ ) { ll y = x, acc = 0; while ( 1 ) { acc += count_sum(y); if ( acc >= upper ) break; if ( y == R ) break; y ++; } if ( acc >= upper ) res ++; x = y; } printf("%lld\n", res); }
/* Makes a random polynomial of degree degree. * * The result may be the zero polynomial! */ static struct polynomial make_initial_pol(unsigned int degree, int print) { unsigned int a1, a2, a3, a4; int c; struct polynomial uit; struct term *uitterm; struct term **ptrterm; uitterm = NULL; uit.degree = degree; uit.leading = NULL; if (!count_sum(degree)) { printf("No monomials of degree %d! Stop.\n", degree); exit(1); } for (a1 = 0; (d1*a1 <= degree);a1++) { for (a2 = 0; (d1*a1 + d2*a2 <= degree);a2++) { for (a3 = 0; (d1*a1 + d2*a2 + d3*a3 <= degree);a3++) { if ((degree - (a1*d1 + a2*d2 + a3*d3)) % d4 == 0) { a4 = (degree - (a1*d1 + a2*d2 + a3*d3))/d4; /* Dummy input at first. */ c = 1; /* Create the new term to be put in. */ make_term(&uitterm); uitterm->n1 = a1; uitterm->n2 = a2; uitterm->n3 = a3; uitterm->n4 = a4; uitterm->c = c; ptrterm = &(uit.leading); while ((*ptrterm) && (kleiner(uitterm, *ptrterm) == KLEINER)) { ptrterm = &((*ptrterm)->next); } uitterm->next = *ptrterm; *ptrterm = uitterm; uitterm = NULL; } } } } if (print) { uitterm = uit.leading; while (uitterm) { a1 = uitterm->n1; a2 = uitterm->n2; a3 = uitterm->n3; a4 = uitterm->n4; c = 0; printf("Coefficient of "); if (a1) { printf("x^%d", a1); c++; } if ((a1) && (a2 + a3 + a4)) { printf(" * "); c++; } if (a2) { printf("y^%d", a2); c++; } if ((a2) && (a3 + a4)) { printf(" * "); c++; } if (a3) { printf("z^%d", a3); c++; } if ((a3) && (a4)) { printf(" * "); c++; } if (a4) { printf("w^%d", a4); c++; } while (8 - c) { printf(" "); c++; } printf("= "); print_scalar(uitterm->c); printf("\n"); uitterm = uitterm->next; } } return(uit); }
int main() { count_sum(); return 0; }
int hilbert(int degree) { int goodcount; goodcount = count_sum(degree); goodcount -= count_sum(degree - d + d1); goodcount -= count_sum(degree - d + d2); goodcount -= count_sum(degree - d + d3); goodcount -= count_sum(degree - d + d4); goodcount += count_sum(degree - 2*d + (d1 + d2)); goodcount += count_sum(degree - 2*d + (d1 + d3)); goodcount += count_sum(degree - 2*d + (d1 + d4)); goodcount += count_sum(degree - 2*d + (d2 + d3)); goodcount += count_sum(degree - 2*d + (d2 + d4)); goodcount += count_sum(degree - 2*d + (d3 + d4)); goodcount -= count_sum(degree - 3*d + (d1 + d2 + d3)); goodcount -= count_sum(degree - 3*d + (d1 + d2 + d4)); goodcount -= count_sum(degree - 3*d + (d1 + d3 + d4)); goodcount -= count_sum(degree - 3*d + (d2 + d3 + d4)); goodcount += count_sum(degree - 4*d + (d1 + d2 + d3 + d4)); return(goodcount); }