QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#577427 | #9310. Permutation Counting 4 | woshinanzihan | WA | 1ms | 4856kb | C++14 | 1.6kb | 2024-09-20 11:22:44 | 2024-09-20 11:22:48 |
Judging History
answer
#include <iostream>
#include <vector>
#include <cstring> // 用于memset函数
using namespace std;
const int MAX_N = 1000000; // 最大的排列大小
bool used[MAX_N + 1]; // 记录每个数字是否已被使用
void solve() {
int t; // 测试用例数量
cin >> t;
while (t--) {
int n; // 当前测试用例的排列大小
cin >> n;
memset(used, 0, sizeof(used)); // 初始化used数组,表示每个数字还未使用
vector<pair<int, int>> ranges(n); // 存储每个li, ri的范围
bool is_possible = true; // 用于判断是否有可能构成排列
// 读取每个li, ri
for (int i = 0; i < n; ++i) {
cin >> ranges[i].first >> ranges[i].second;
int li = ranges[i].first;
int ri = ranges[i].second;
if (li == ri) { // 如果li == ri,这个位置只能取li这个数字
if (used[li]) { // 如果这个数字已经被使用过,无法构成合法排列
is_possible = false;
}
used[li] = true; // 标记这个数字已经被使用
}
}
// 输出结果
if (is_possible) {
cout << "1\n"; // 如果排列数为奇数(即可能构成合法排列)
} else {
cout << "0\n"; // 如果排列数为偶数或无法构成合法排列
}
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
solve(); // 调用主函数处理输入和输出
return 0;
}
詳細信息
Test #1:
score: 0
Wrong Answer
time: 1ms
memory: 4856kb
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 1 1 1
result:
wrong answer 1st words differ - expected: '0', found: '1'