# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
22648 | 2017-04-30T06:07:10 Z | 응 내인생 터졌어~(#957, sosfd) | August14 Beginner Contest (KRIII5_ABC) | C++ | 0 ms | 313616 KB |
#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
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
1 | Incorrect | 0 ms | 313616 KB | Unexpected end of file - token expected |