結果
| 問題 |
No.2434 RAKUTAN de RAKUTAN
|
| コンテスト | |
| ユーザー |
Astral__
|
| 提出日時 | 2023-08-12 09:23:48 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
MLE
|
| 実行時間 | - |
| コード長 | 1,184 bytes |
| コンパイル時間 | 2,018 ms |
| コンパイル使用メモリ | 200,756 KB |
| 最終ジャッジ日時 | 2025-02-16 02:44:19 |
|
ジャッジサーバーID (参考情報) |
judge4 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | MLE * 1 -- * 23 |
ソースコード
#include<bits/stdc++.h>
#define rep(i, s, f) for(ll i = s; i <= f; i++)
typedef int ll;
using namespace std;
void solve() {
ll N, M, X;
cin >> N >> M >> X;
ll G, B;
cin >> G;
vector<ll> g(G+1);
for(int i = 1; i <= G; i++) {
cin >> g.at(i);
}
cin >> B;
vector<ll> b(B+1);
for(int i = 1; i <= B; i++) {
cin >> b.at(i);
}
vector<ll> table(N+1, 0);
rep(i, 1, G){
table.at(g.at(i)) = 1;
}
rep(i, 1, B) {
table.at(b.at(i)) = -1;
}
vector<vector<ll>> dp(N+1, vector<ll>(M+1, -100100100));
dp.at(0).at(M) = 0;
rep(i, 1, N) {
rep(j, 0, M) {
dp.at(i).at(j) = max(dp.at(i-1).at(j) + table.at(i), dp.at(i).at(j));
if(j != M && i >= X) dp.at(i).at(j) = max(dp.at(i).at(j), dp.at(i-X).at(j+1) + table.at(i));
}
}
ll ans = -100100100;
rep(i, 0, M) {
ans = max(ans, dp.at(N).at(i));
}
cout << ans << endl;
}
//stringでの数字の下から1桁目は 正:S.at(N-1) 誤:S.at(0)
//if(S.at(i) == 1 ← charなのに1...?
// modは取りましたか...?(´・ω・`)
int main() {
ios::sync_with_stdio(false);
std::cin.tie(nullptr);
cout << fixed << setprecision(15);
solve();
return 0;
}
Astral__