# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
552691 | tht2005 | Jail (JOI22_jail) | C++17 | 69 ms | 4960 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const int N = 120005;
int n, m, cnt[N], s[N], t[N], idx[N];
int main() {
int q;
scanf("%d", &q);
while(q--) {
scanf("%d", &n);
for(int i = 1; i < n; ++i) {
int a, b;
scanf("%d %d", &a, &b);
assert(a == i && b == i + 1);
}
memset(cnt, 0, (n + 1) * sizeof *cnt);
scanf("%d", &m);
for(int i = 1; i <= m; ++i) {
scanf("%d %d", s + i, t + i);
if(s[i] < t[i]) {
++cnt[s[i]];
--cnt[t[i] + 1];
}
}
for(int i = 1; i <= n; ++i) {
cnt[i] += cnt[i - 1];
}
for(int i = 1; i <= m; ++i) {
if(s[i] > t[i]) {
swap(s[i], t[i]);
if(cnt[s[i]] || cnt[t[i]]) {
puts("No");
goto nextQuery;
}
}
idx[i] = i;
}
sort(idx + 1, idx + 1 + m, [&](int i, int j) {
return s[i] < s[j];
});
for(int x = 1, r = 0; x <= m; ++x) {
int i = idx[x];
if(r > t[i]) {
puts("No");
goto nextQuery;
}
r = t[i];
}
puts("Yes");
nextQuery:;
}
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |