Submission #140198

#TimeUsernameProblemLanguageResultExecution timeMemory
140198rdd6584Fully Generate (KRIII5_FG)C++14
2 / 7
1078 ms156816 KiB
#include <cstdio> #include <algorithm> #include <memory.h> #include <iostream> using namespace std; typedef long long ll; const int MOD = 1000000007; int vec[40000001]; ll mp(ll a, ll b) { ll ret = 1; while (b) { if (b % 2) ret = ret * a % MOD; a = a * a % MOD; b /= 2; } return ret; } int main() { ll n; scanf("%lld", &n); if (n == 1) return !printf("1"); if (n == 2) return !printf("2"); if (n == 3) return !printf("4"); int now = 3; ll cnt = 3; ll ans = 4; vec[1] = 1, vec[2] = 2, vec[3] = 2; while (1) { if (vec[now] + cnt >= n) { ans = ans * mp(now, n - cnt) % MOD; break; } for (ll i = cnt + 1; i <= vec[now] + cnt && i <= 40000000; i++) vec[i] = now; ans = ans * mp(now, vec[now]) % MOD; cnt += vec[now]; now++; } printf("%lld", ans); }

Compilation message (stderr)

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