結果
| 問題 |
No.412 花火大会
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-08-30 17:14:07 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,424 bytes |
| コンパイル時間 | 1,705 ms |
| コンパイル使用メモリ | 171,520 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-11-14 07:49:31 |
| 合計ジャッジ時間 | 2,633 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | WA * 4 |
| other | WA * 18 |
ソースコード
#define _CRT_SECURE_NO_WARNINGS
#define _USE_MATH_DEFINES
#include "bits/stdc++.h"
#define REP(i,a,b) for(i=a;i<b;++i)
#define rep(i,n) REP(i,0,n)
#define ll long long
#define ull unsigned ll
typedef long double ld;
#define ALL(a) (a).begin(),(a).end()
#define ifnot(a) if(not a)
#define dump(x) cerr << #x << " = " << (x) << endl
using namespace std;
// #define int ll
bool test = 0;
int dx[] = { 0,1,0,-1 };
int dy[] = { 1,0,-1,0 };
#define INF (1 << 28)
ull mod = (int)1e9 + 7;
//.....................
#define MAX (int)1e6 + 5
int main() {
int i, j, k;
int need[3];
rep(i, 3) cin >> need[i];
int n;
cin >> n;
vector<int> E(n); //持ってく奴
REP(i, 0, n) {
cin >> E[i];
}
sort(ALL(E));
int d[33] = {};
// d[i] : E[i]を持っていたら欲しい家族がいくつあるか
REP(i, 0, E.size()) {
REP(j, 0, 3) {
if (E[i] >= need[j]) {
d[i]++;
}
}
}
int dp[33][4] = {};
dp[0][0] = 1;
REP(i, 1, E.size() + 1) {
REP(j, 0, 4) {
if (d[i - 1] == j) {
dp[i][j] += dp[i - 1][j] * 2;
printf("dp[%d][%d]", i, j);
printf(" += dp[%d][%d] * 2\n", i - 1, j);
}
else if (d[i - 1] > j) {
dp[i][j] += dp[i - 1][j];
printf("dp[%d][%d]", i, j);
printf(" += dp[%d][%d]\n", i - 1, j);
dp[i][j + 1] += dp[i - 1][j];
printf("dp[%d][%d]", i, j+1);
printf(" += dp[%d][%d]\n", i - 1, j);
}
}
puts("");
}
cout << dp[E.size()][3] << endl;
return 0;
}