#include #include extern const char *__progname; typedef long long int BIG; #define BIGFMT "%qd" static int n; static BIG *amt; static BIG totamt; static BIG *inc; static BIG totinc; static void usage(void) { fprintf(stderr,"Usage: %s increment amt1 amt2 ... amtN\n",__progname); exit(1); } int main(int, char **); int main(int ac, char **av) { int i; BIG aleft; BIG ileft; BIG p; BIG q; BIG r; if (ac < 2) usage(); totinc = strtoq(av[1],0,0); n = ac - 2; amt = malloc(n*2*sizeof(BIG)); inc = amt + n; totamt = 0; for (i=0;i= aleft) q ++; inc[i] = q; ileft -= inc[i]; aleft -= amt[i]; } if ((ileft != 0) || (aleft != 0)) { fprintf(stderr,"INTERNAL ERROR: ileft="BIGFMT" aleft="BIGFMT"\n",ileft,aleft); abort(); } for (i=0;i