Submission #22489

#TimeUsernameProblemLanguageResultExecution timeMemory
22489AJAE (#40)Fully Generate (KRIII5_FG)C++14
2 / 7
500 ms246020 KiB
#include <cstdio> #include <vector> using namespace std; using ll = long long; ll MMOD = 1000000007; ll popo(ll a, ll p) { ll r =1; while(p) { if(p&1) r= (r*a)%MMOD; a = (a*a) % MMOD; p >>= 1LL; } return r; } ll arr[31347599]; int sss[6] = {0,1,2,4,12,36}; int main() { ll n; ll cnt = 0; ll ans = 1; scanf("%lld\n", &n); if(n<=5) { printf("%d\n", sss[n]); return 0; } ll gsize = 4; arr[0] = 0; arr[1] = 1; arr[2] = 2; arr[3] = 2; cnt = 1+2+2; ans = 2*2*3*3; bool sw = true; for(int i=3;sw;++i){ ll &tmp = arr[i]; ll ttmp = 1; int st = gsize; for(ll j=0;j<tmp;++j) { arr[gsize] = i; gsize++; cnt += i; if (cnt >= n) { ans = (ans * popo(ttmp, i))%MMOD; arr[gsize-1] = i - (cnt-n); ans = (ans * popo(gsize-1, arr[gsize-1]))%MMOD; printf("%lld\n", ans); return 0; } ttmp = (ttmp*(gsize-1))%MMOD; } ans = (ans * popo(ttmp, i))%MMOD; } return 0; }

Compilation message (stderr)

FG.cpp: In function 'int main()':
FG.cpp:40:13: warning: unused variable 'st' [-Wunused-variable]
         int st = gsize;
             ^
FG.cpp:24:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld\n", &n);
                        ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...