結果
問題 |
No.287 場合の数
|
ユーザー |
![]() |
提出日時 | 2015-11-28 22:22:46 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 141 ms / 5,000 ms |
コード長 | 887 bytes |
コンパイル時間 | 1,280 ms |
コンパイル使用メモリ | 159,976 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-08 00:07:28 |
合計ジャッジ時間 | 3,636 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 22 |
ソースコード
#define _CRT_SECURE_NO_WARNINGS #include "bits/stdc++.h" #define rep(i,n) for(int i = 0;i < n;i++) #define P(p) cout<<(p)<<endl; using namespace std; typedef long long ll; int dx[] = { 0, 1, 0, -1 }; int dy[] = { -1, 0, 1, 0 }; int sttoi(std::string str) { int ret; std::stringstream ss; ss << str; ss >> ret; return ret; } ll gcd(ll a, ll b){ if (b > a)swap(a, b); if (b == 0)return a; else{ return gcd(b, a%b); } } void solve() { int n; cin >> n; n *= 6; ll dp[9][700]; for (int i = 0; i < 9; i++){ for (int j = 0; j < 700; j++){ dp[i][j] = 0; } } for (int i = 0; i <= n/6; i++){ dp[1][i] = 1; } for (int i = 2; i < 9; i++){ for (int j = 0; j <= n; j++){ for (int k = 0; k <= n; k++){ for (int l = 0; l <= n / 6; l++){ if (k + l == j){ dp[i][j] += dp[i - 1][k]; } } } } } P(dp[8][n]); } int main() { solve(); return 0; }