Submission #47476

#TimeUsernameProblemLanguageResultExecution timeMemory
47476TalantAsceticism (JOI18_asceticism)C++17
100 / 100
51 ms1488 KiB
#include <bits/stdc++.h> #define mk make_pair #define sc second #define fr first #define pb emplace_back #define all(s) s.begin(), s.end() #define sz(s) ( (int)s.size() ) #define int long long using namespace std; const int inf = (int)1e9 + 7; const int N = (int)1e5 + 7; int n,m; int f[N]; int ans; int binpow (int a,int b) { int res = 1; while (b) { if (b & 1) res *= a; a *= a; b >>= 1; a %= inf; res %= inf; } return (res % inf); } int cnk(int n,int k) { return ((f[n] * binpow(f[n - k],inf - 2)) % inf * binpow(f[k],inf - 2) % inf); } int fun(int k) { return ((cnk(n + 1,k) * binpow(m - k,n)) % inf); } main() { f[0] = 1; for (int i = 1; i <= N - 5; i ++) f[i] = (f[i - 1] * i) % inf; cin >> n >> m; for (int i = 0; i <= m; i ++) { if (i & 1) ans = (ans + inf - fun(i)) % inf; else ans = (ans + fun(i)) % inf; } cout << ans << endl; }

Compilation message (stderr)

asceticism.cpp:38:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...