QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#568911#9310. Permutation Counting 4yylxWA 0ms3576kbC++141.1kb2024-09-16 19:12:282024-09-16 19:12:28

Judging History

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

  • [2024-09-18 14:56:40]
  • hack成功,自动添加数据
  • (/hack/835)
  • [2024-09-18 14:41:06]
  • hack成功,自动添加数据
  • (/hack/831)
  • [2024-09-17 12:14:52]
  • hack成功,自动添加数据
  • (/hack/825)
  • [2024-09-16 19:12:28]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3576kb
  • [2024-09-16 19:12:28]
  • 提交

answer

#include <iostream>
#include <vector>

using namespace std;

const int MOD = 2;

int countPermutations(int n, const vector<int>& left, const vector<int>& right) {
    // Initialize dp table with 1s, as any number can be placed in the first position
    vector<int> dp(n + 1, 1);

    for (int i = 1; i <= n; ++i) {
        // Iterate through each pair of constraints
        for (int j = 0; j < left.size(); ++j) {
            // Calculate the maximum number of elements that can be placed in position i
            int max_val = min(right[j], i);
            int min_val = max(left[j], i);
            if (min_val <= max_val) {
                // Update dp[i] based on the number of ways to place elements in previous positions
                dp[i] = (dp[i] + dp[min_val - 1]) % MOD;
            }
        }
    }

    return dp[n];
}

int main() {
    int n;
    cin >> n;

    vector<int> left(n), right(n);
    for (int i = 0; i < n; ++i) {
        cin >> left[i] >> right[i];
    }

    int result = countPermutations(n, left, right);
    cout << result << endl;

    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 0
Wrong Answer
time: 0ms
memory: 3576kb

input:

4
5
1 2
1 5
1 2
1 2
2 2
5
1 1
2 4
2 3
5 5
3 4
5
3 5
1 2
3 4
3 5
3 3
5
1 5
1 4
4 5
5 5
1 2

output:

1

result:

wrong answer 1st words differ - expected: '0', found: '1'