Submission #22304

#TimeUsernameProblemLanguageResultExecution timeMemory
22304Lazy Against The Machine (#40)Fully Generate (KRIII5_FG)C++14
2 / 7
0 ms626116 KiB
#include <stdio.h> long long arr[40000000]; long long nuj[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; 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; if (nuj[start + j] >= n) { end = start + j; goto hell; } } start += arr[i]; } hell: long long result = 1; for (int i = 2; i < end; i++) { result = (result * modpow(i, arr[i])) % mod; } printf("%lld", (result * modpow(end, n - nuj[end - 1])) % mod); return -0; }

Compilation message (stderr)

FG.cpp: In function 'int main()':
FG.cpp:29:12: warning: unused variable 'sum' [-Wunused-variable]
  long long sum = 1;
            ^
FG.cpp:35:17: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d", &n);
                 ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...