QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#555785 | #8780. Training, Round 2 | chengning0909 | WA | 1ms | 5756kb | C++20 | 1.2kb | 2024-09-10 09:53:30 | 2024-09-10 09:53:31 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 5010;
int n, x, y, lx[N], rx[N], ly[N], ry[N], ans;
bitset<N> dp[2][N];
int main() {
ios::sync_with_stdio(0), cin.tie(0);
cin >> n >> x >> y;
for (int i = 1; i <= n; i++) {
cin >> lx[i] >> rx[i] >> ly[i] >> ry[i];
}
dp[0][0][0] = 1;
for (int i = 1; i <= n; i++) {
int k = i & 1;
for (int j = 0; j <= n; j++) {
dp[k][j] = dp[k ^ 1][j];
if (lx[i] <= x + j && x + j <= rx[i]) {
dp[k][j] |= (dp[k ^ 1][j] << 1) | (dp[k ^ 1][j - 1]);
}
}
if (0 <= ly[i] - y && ly[i] - y <= n && 0 <= ry[i] - y && ry[i] - y <= n) {
int l = ly[i] - y, r = ry[i] - y;
for (int j = 0; j <= n; j++) {
dp[k][j] = (dp[k][j] >> l) << l;
dp[k][j] = (dp[k][j] << (n - r)) >> (n - r);
}
}
for (int j = 0; j <= n; j++) dp[k ^ 1][j].reset();
}
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= n; j++) {
if (dp[n & 1][i][j]) ans = max(ans, i + j);
}
}
cout << ans;
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 5756kb
input:
3 0 0 0 1 0 1 1 1 0 1 1 1 1 1
output:
4
result:
wrong answer 1st lines differ - expected: '3', found: '4'