# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
22296 | 2017-04-30T03:42:12 Z | Lazy Against The Machine(#969, unused, celicath, Paruelain) | Fully Generate (KRIII5_FG) | C++14 | 0 ms | 952 KB |
#include <stdio.h> long long arr[40000000]; long long nuj[40000000]; long long pro[40000000]; long long pr2[40000000]; long long mod = 1000000007; // calculate n^k % m long long modpow(long long n, long long k) { long long ret = 1; n %= mod; while (k) { if (k & 1) ret = (ret * n) % mod; n = (n * n) % mod; k /= 2; } return ret; } int main() { arr[1] = 1; arr[2] = 2; nuj[1] = 1; nuj[2] = 3; pro[1] = 1; pro[2] = 2; pr2[1] = 1; pr2[2] = 2; long long sum = 1; long long start = 2; long long end = 2; int n; scanf("%d", &n); for (int i = 2;; i++) { for (int j = 0; j < arr[i] ; j++) { arr[start + j] = i; nuj[start + j] = nuj[start + j - 1] + i; pro[start + j] = (pro[start + j - 1] * i) % mod; if (nuj[start + j] >= n) { end = start + j; goto hell; } } start += arr[i]; } hell: for (int i = 2; i < end; i++) { pr2[i] = (pr2[i - 1] * modpow(i, arr[i])) % mod; } printf("%lld", (pr2[end - 1] * modpow(end, n - nuj[end - 1])) % mod); return -0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 0 ms | 952 KB | Execution killed with signal 11 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Runtime error | 0 ms | 952 KB | Execution killed with signal 11 (could be triggered by violating memory limits) |
2 | Halted | 0 ms | 0 KB | - |