제출 #1281386

#제출 시각아이디문제언어결과실행 시간메모리
1281386ridarfxSkyscraper (JOI16_skyscraper)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; #define endl "\n" const long long INF = 1e18; const long long mxN = 105; const long long MOD = 1e9+7; long long dp[mxN][mxN][1005][3]; void solve(){ long long n,l; cin >> n >> l; vector<long long> a(n+2); for(int i=1; i<=n; i++){ cin >> a[i]; } if(n==1){ cout << 1 << endl; return 0; } a[n+1]=10000; sort(a.begin(),a.end()); dp[0][0][0][0]=1; for(int i=1; i<=n; i++){ for(int j=1; j<=i; j++){ for(int k=0; k<=l; k++){ for(int m=0; m<=2; m++){ long long delta = (2*j-m)*(a[i+1]-a[i]); if(delta>k) continue; dp[i][j][k][m]+=dp[i-1][j-1][k-delta][m]; if(m){ dp[i][j][k][m]+=(3-m)*dp[i-1][j-1][k-delta][m-1]; } dp[i][j][k][m]+=(2*j-m)*dp[i-1][j][k-delta][m]; if(m==1){ dp[i][j][k][m]+=2*j*dp[i-1][j][k-delta][m-1]; } if(m==2){ if(i==n){ dp[i][j][k][m]+=dp[i-1][j][k-delta][m-1]; } else{ dp[i][j][k][m]+=(j-1)*dp[i-1][j][k-delta][m-1]; } } if(m==2){ if(i==n){ dp[i][j][k][m]+=dp[i-1][j+1][k-delta][m]; } else{ dp[i][j][k][m]+=j*(j-1)*dp[i-1][j+1][k-delta][m]; } } else if(m==1){ dp[i][j][k][m]+=j*j*dp[i-1][j+1][k-delta][m]; } else{ dp[i][j][k][m]+=j*(j+1)*dp[i-1][j+1][k-delta][m]; } dp[i][j][k][m]%=MOD; } } } } long long ans = 0; for(int i=0; i<=l; i++){ ans+=dp[n][1][i][2]; } cout << ans%MOD << endl; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); long long t=1; //cin >> t; while(t--){ solve(); } }

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

skyscraper.cpp: In function 'void solve()':
skyscraper.cpp:17:24: error: return-statement with a value, in function returning 'void' [-fpermissive]
   17 |                 return 0;
      |                        ^