QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#555792#8780. Training, Round 2chengning0909WA 1ms5696kbC++111.1kb2024-09-10 09:57:252024-09-10 09:57:26

Judging History

你现在查看的是最新测评结果

  • [2024-09-10 09:57:26]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:5696kb
  • [2024-09-10 09:57:25]
  • 提交

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 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: 5696kb

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'