Submission #22649

#TimeUsernameProblemLanguageResultExecution timeMemory
22649응 내인생 터졌어~ (#40)Fully Generate (KRIII5_FG)C++98
2 / 7
500 ms313616 KiB
#include <stdio.h> unsigned long long dp[40000000]; long long go(int i) { if (dp[i] !=0) return dp[i]; return dp[i] = 1 + go(i - go(go(i - 1))); } unsigned long long po(unsigned int a, unsigned int b) { if (b == 0) return 1; else if (b == 1) return a; unsigned long long ret = po(a, b/2) % 1000000007; ret = ret*ret; ret %= 1000000007; if (b % 2) return (ret* a)%1000000007; else return ret; } int main() { dp[1] = 1; unsigned long long sum = 0,n,ans =1; scanf("%llu", &n); for (int i = 1; i < 40000000; i++) { sum += go(i); if (sum >= n) { sum -= go(i); ans *= po(i, n - sum); ans %= 1000000007; break; } ans *= po(i, go(i)); ans %= 1000000007; } printf("%llu", ans); return 0; }

Compilation message (stderr)

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