제출 #1286788

#제출 시각아이디문제언어결과실행 시간메모리
1286788arman.khachatryanZapina (COCI20_zapina)C++20
55 / 110
1090 ms1084 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long const long long N=360, MOD=1e9+7; ll fact[N], dp[N][N]; ll sum(ll a, ll b){ if(a+b>=MOD){ return a+b-MOD; } return a+b; } ll mult(ll a, ll b){ return (a*b)%MOD; } ll BinPow(ll x, ll y){ ll ans=1; while(y>0){ if(y&1){ ans=mult(ans, x); } x=mult(x, x); y>>=1; } return ans; } ll C(ll n, ll k) { return mult(fact[n], BinPow(mult(fact[k], fact[n-k]), MOD-2)); } int main() { ll n; cin>>n; for(int i=1; i<=n; i++){ dp[1][i]=0; dp[i][1]=1; } fact[0]=1; for(int i=1; i<=N; i++){ fact[i]=mult(fact[i-1], i); } for(int i=2; i<=n; i++){ for(int j=2; j<=n; j++){ for(int k=0; k<=j; k++){ if(k==i){ dp[i][j]=sum(dp[i][j], mult(C(j, k), BinPow(i-1, j-k))); }else{ dp[i][j]=sum(dp[i][j], mult(dp[i-1][j-k], C(j, k))); } } } } cout<<dp[n][n]; }

컴파일 시 표준 에러 (stderr) 메시지

zapina.cpp: In function 'int main()':
zapina.cpp:43:16: warning: iteration 359 invokes undefined behavior [-Waggressive-loop-optimizations]
   43 |         fact[i]=mult(fact[i-1], i);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~
zapina.cpp:42:19: note: within this loop
   42 |     for(int i=1; i<=N; i++){
      |                  ~^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...