void update_power(void) { struct powstr powbuf[MAXNOC]; gen_power(powbuf, 1); }
int main() { gen_fact_inv(); gen_bernolli(); summ(); gen_power(); ll t=input(); while(t--) { ll m,k,x,n,i,ans = 0; n=input(); m=input(); ll p=1; for(i=0;i<=m+2;i++) { if(f[m][i]) ans = (ans + f[m][i]*p)%mod; p = (p*n)%mod; } printf("%lld\n",ans); } return 0; }
int powe(void) { struct natstr *natp; int i; time_t pow_time; struct nstr_item ni; int save = 1; int num = MAXNOC; int power_generated = 0; struct natstr nat; struct powstr powbuf[MAXNOC]; int targets[MAXNOC]; int use_targets = 0; int no_numbers = 0; memset(targets, 0, sizeof(targets)); i = 1; if (player->argp[1]) { switch (player->argp[1][0]) { case 'u': if (player->god) save = 0; /* fall through */ case 'n': i++; natp = getnatp(player->cnum); if (natp->nat_btu < 1) pr("\n Insufficient BTUs, using the last report.\n\n"); else if (opt_AUTO_POWER && save) pr("\n power new is disabled, using the last report.\n\n"); else { gen_power(powbuf, save); pow_time = time(NULL); power_generated = 1; } } } if (player->argp[i]) { if (player->argp[i][0] == 'c') { if (!snxtitem(&ni, EF_NATION, player->argp[i + 1], NULL)) return RET_SYN; while (nxtitem(&ni, &nat)) { if (nat.nat_stat == STAT_UNUSED) continue; if (!player->god && nat.nat_stat != STAT_ACTIVE) continue; targets[nat.nat_cnum] = 1; } use_targets = 1; } else num = atoi(player->argp[i]); } if (num < 0) { if (!player->god) return RET_SYN; num = -num; no_numbers = 1; } if (!power_generated) { pow_time = ef_mtime(EF_POWER); snxtitem_all(&ni, EF_POWER); if (!nxtitem(&ni, &powbuf[0])) { pr("Power for this game has not been built yet.%s\n", opt_AUTO_POWER ? "" : " Type 'power new' to build it."); return RET_FAIL; } for (i = 1; i < MAXNOC; i++) { if (!nxtitem(&ni, &powbuf[i])) { CANT_REACH(); memset(&powbuf[i], 0, sizeof(powbuf[i])); } } } pr(" - = [ Empire Power Report ] = -\n"); pr(" as of %s\n sects eff civ", ctime(&pow_time)); pr(" mil shell gun pet iron dust oil pln ship unit money\n"); for (i = 1; i < MAXNOC && num > 0; i++) { if (opt_HIDDEN) { if (!player->god && powbuf[i].p_nation != player->cnum) continue; } if (use_targets && !targets[powbuf[i].p_nation]) continue; if (!use_targets && powbuf[i].p_power <= 0.0) continue; prpower(cname(powbuf[i].p_nation), &powbuf[i], powbuf[i].p_nation != player->cnum && !player->god); if (player->god && !no_numbers) pr("%9.2f\n", powbuf[i].p_power); num--; } if (!opt_HIDDEN || player->god) { pr(" ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----\n"); prpower("worldwide", &powbuf[0], !player->god); pr("\n"); } return RET_OK; }