Submission #1257729

#TimeUsernameProblemLanguageResultExecution timeMemory
1257729trandangquang캥거루 (CEOI16_kangaroo)C++20
100 / 100
15 ms14920 KiB
#include <bits/stdc++.h> using namespace std; #define foru(i, a, b) for(int i = (a); i <= (b); ++i) #define ford(i, a, b) for(int i = (a); i >= (b); --i) #define rep(i, a) for(int i = 0; i < (a); ++i) #define sz(a) (int)(a).size() #define all(a) (a).begin(), (a).end() #define bit(s, i) (((s) >> (i)) & 1) #define ii pair <int, int> #define fi first #define se second #define ll long long #define eb emplace_back #define pb push_back #define __builtin_popcount __builtin_popcountll template <class X, class Y> bool maxi(X &x, Y y) { if(x < y) { x = y; return true; } return false; } template <class X, class Y> bool mini(X &x, Y y) { if(x > y) { x = y; return true; } return false; } const int N=2222; const int mod=1e9+7; int n,cs,cf,dp[N][N]; inline int add(int a, int b){ a+=b; if(a>=mod) a-=mod; return a; } inline int mul(int a, int b){ return (ll)a*b % mod; } void solve(){ cin>>n>>cs>>cf; dp[0][0]=1; foru(i,1,n){ if(i==cs || i==cf){ foru(j,1,i){ dp[i][j]=add(dp[i][j],add(dp[i-1][j],dp[i-1][j-1])); } } else{ foru(j,1,i){ dp[i][j]=add(dp[i][j],mul(dp[i-1][j+1],j)); int place = j-2+(i<cs)+(i<cf); if(j==1) place=1; dp[i][j]=add(dp[i][j],mul(dp[i-1][j-1],place)); } } } cout<<dp[n][1]<<'\n'; } int32_t main() { #define task "test" if(fopen(task".inp", "r")){ freopen(task".inp", "r", stdin); freopen(task".out", "w", stdout); } cin.tie(0)->sync_with_stdio(0); int tc = 1; // cin >> tc; foru(i, 1, tc){ solve(); } }

Compilation message (stderr)

kangaroo.cpp: In function 'int32_t main()':
kangaroo.cpp:73:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   73 |         freopen(task".inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
kangaroo.cpp:74:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   74 |         freopen(task".out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...