| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 552691 | tht2005 | Jail (JOI22_jail) | C++17 | 69 ms | 4960 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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;
}
컴파일 시 표준 에러 (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... | ||||
