QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#113366 | #5466. Permutation Compression | kemuniku | TL | 168ms | 3532kb | C++23 | 3.0kb | 2023-06-17 10:59:46 | 2023-06-17 10:59:47 |
Judging History
answer
#include <iostream>
#include <set>
#include <vector>
#include <algorithm>
#include <queue>
std::vector<int> solve() {
int N, M, K;
std::cin >> N >> M >> K;
std::vector<int> A(N), B(M), L(K);
for (int i = 0; i < N; ++i)
std::cin >> A[i];
for (int i = 0; i < M; ++i)
std::cin >> B[i];
for (int i = 0; i < K; ++i)
std::cin >> L[i];
std::vector<int> rB(B.rbegin(), B.rend());
for (int i = 0; i < N; ++i) {
if (A[i] == rB.back()) {
rB.pop_back();
}
if (rB.empty()) {
break;
}
}
if (!rB.empty()) {
return {0}; // "NO"
}
std::set<int> sB(B.begin(), B.end());
std::vector<int> ok(N, -1);
std::priority_queue<int, std::vector<int>, std::greater<int>> q;
std::vector<int> v_to_i(N + 1, -1);
for (int i = 0; i < N; ++i)
v_to_i[A[i]] = i;
std::vector<int> start(N + 1, -1);
std::set<int> st;
for (int i = N - 1; i >= 0; --i) {
if (sB.count(A[i]) > 0) {
while (!q.empty() && q.top() < A[i]) {
int x = q.top();
q.pop();
ok[v_to_i[x]] = std::distance(st.begin(), st.lower_bound(x)) - start[x];
}
} else {
q.push(A[i]);
start[A[i]] = std::distance(st.begin(), st.lower_bound(A[i]));
}
st.insert(A[i]);
}
while (!q.empty()) {
int x = q.top();
q.pop();
ok[v_to_i[x]] = std::distance(st.begin(), st.lower_bound(x)) - start[x];
}
q = std::priority_queue<int, std::vector<int>, std::greater<int>>();
start.assign(N + 1, -1);
st.clear();
for (int i = 0; i < N; ++i) {
if (sB.count(A[i]) > 0) {
while (!q.empty() && q.top() < A[i]) {
int x = q.top();
q.pop();
ok[v_to_i[x]] += std::distance(st.begin(), st.lower_bound(x)) - start[x];
}
} else {
q.push(A[i]);
start[A[i]] += std::distance(st.begin(), st.lower_bound(A[i]));
}
st.insert(A[i]);
}
while (!q.empty()) {
int x = q.top();
q.pop();
ok[v_to_i[x]] += std::distance(st.begin(), st.lower_bound(x)) - start[x];
}
std::vector<int> li;
for (int i = 0; i < N; ++i) {
if (ok[i] != -1)
li.push_back(ok[i]);
}
std::sort(li.begin(), li.end());
std::sort(L.begin(), L.end());
if (li.size() > L.size())
return {0};
for (int i = 0; i < li.size(); ++i) {
if (li[i] < L[i])
return {0};
}
return {1};
}
int main() {
int T;
std::cin >> T;
for (int i = 0; i < T; ++i) {
std::vector<int> result = solve();
if (result[0] == 1)
std::cout << "YES\n";
else
std::cout << "NO\n";
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 3436kb
input:
3 5 2 3 5 1 3 2 4 5 2 1 2 4 5 5 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 3 2 2 3 1 2 3 2 2 3
output:
YES YES NO
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 0ms
memory: 3504kb
input:
100 2 1 2 2 1 2 1 1 2 1 2 1 2 1 2 2 2 1 1 1 2 1 2 6 1 5 3 4 2 5 6 1 3 5 2 1 1 1 6 1 6 2 1 3 6 4 5 1 4 1 2 2 1 4 3 3 2 2 1 3 2 1 3 2 2 1 1 1 1 1 1 1 1 1 1 1 1 2 1 2 2 1 2 1 2 4 4 3 2 1 3 4 2 1 3 4 4 3 1 1 1 1 1 1 1 6 5 1 6 2 5 4 3 1 6 2 4 3 1 4 1 1 1 1 1 1 6 5 3 3 6 1 4 5 2 3 6 1 4 2 3 3 4 4 3 4 3 4 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES NO NO NO YES YES NO NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES NO YES YES YES YES YE...
result:
ok 100 lines
Test #3:
score: 0
Accepted
time: 2ms
memory: 3428kb
input:
99 6 1 6 1 5 3 4 2 6 1 1 2 1 1 1 6 1 1 1 1 1 1 4 1 3 3 4 1 2 1 1 1 2 2 2 1 2 1 2 1 2 1 1 1 1 1 1 2 1 2 1 2 2 1 2 1 1 1 1 1 1 1 1 1 1 1 1 3 2 2 3 2 1 2 1 1 2 3 3 1 2 3 1 2 3 1 1 6 1 5 3 4 2 5 6 1 3 4 2 1 1 1 6 4 4 1 6 5 2 3 4 1 2 3 4 5 4 4 6 2 1 1 1 2 1 1 6 5 1 2 1 4 5 6 3 2 1 4 6 3 2 6 3 6 5 6 2 1 3...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO NO YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES NO NO YES YES YES NO YES YES YES NO YES YES NO YES NO YES NO YES YES YES YES YES YES NO YES NO NO YES YES YES YE...
result:
ok 99 lines
Test #4:
score: 0
Accepted
time: 2ms
memory: 3468kb
input:
98 6 1 6 6 1 4 5 2 3 3 1 2 2 1 1 6 4 3 2 2 3 4 1 2 1 3 3 4 1 1 1 1 1 1 6 1 6 6 4 3 1 2 5 1 3 1 3 1 1 5 1 1 1 1 1 1 6 4 4 3 4 1 2 5 6 3 4 1 2 2 4 3 1 6 5 1 4 5 3 6 1 2 4 5 3 1 2 6 1 1 1 1 1 1 5 1 4 1 3 2 4 5 1 5 3 4 4 6 3 4 1 4 2 3 6 5 1 2 5 5 4 6 5 4 1 3 2 1 4 3 2 1 1 1 1 1 1 1 1 1 6 3 5 5 1 3 6 4 2...
output:
YES NO YES YES YES YES YES YES NO NO YES YES NO YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO Y...
result:
ok 98 lines
Test #5:
score: 0
Accepted
time: 126ms
memory: 3468kb
input:
60000 1 1 1 1 1 1 1 1 1 1 1 1 3 2 1 2 3 1 2 1 2 3 3 1 1 2 3 1 2 3 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 3 2 3 2 1 3 2 1 1 1 2 2 1 2 1 2 1 1 1 1 1 1 1 1 2 2 1 1 2 1 2 1 1 1 1 1 1 1 3 1 3 2 3 1 1 2 3 2 3 3 2 2 3 1 2 3 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 2 3 3 2 1 2 1 1 2 1 3 2 2 1 3 2 3 2 3 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES...
result:
ok 60000 lines
Test #6:
score: 0
Accepted
time: 110ms
memory: 3532kb
input:
50000 1 1 1 1 1 1 4 3 4 1 2 3 4 1 2 3 2 3 4 4 1 1 1 1 1 1 3 2 1 3 1 2 1 2 3 4 1 4 2 1 4 3 2 4 4 3 4 3 1 2 1 2 3 2 3 3 4 1 3 4 2 1 3 1 3 2 4 4 4 2 4 1 2 3 4 1 2 3 3 4 3 1 2 2 1 3 3 1 3 4 2 2 4 3 1 2 3 1 2 1 1 1 1 1 1 1 4 3 1 1 2 3 4 1 2 4 4 4 1 4 4 3 2 1 4 2 1 1 2 3 3 1 2 1 3 2 1 3 1 4 3 2 1 3 2 4 1 ...
output:
YES YES YES YES NO NO YES YES NO YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES Y...
result:
ok 50000 lines
Test #7:
score: 0
Accepted
time: 112ms
memory: 3468kb
input:
40000 3 2 1 3 2 1 2 1 3 5 5 1 5 2 1 3 4 5 2 1 3 4 5 4 1 3 1 4 3 2 1 1 1 1 5 3 3 5 3 4 1 2 3 1 2 1 2 1 3 1 2 1 3 2 1 3 1 2 2 2 1 2 1 2 2 2 5 4 2 5 4 2 1 3 4 2 1 3 1 2 1 1 1 1 1 1 3 1 2 1 2 3 1 2 1 2 1 1 1 2 1 2 5 5 2 5 2 3 1 4 5 2 3 1 4 1 1 5 3 4 4 5 1 2 3 4 2 3 1 1 1 3 1 1 1 1 1 1 5 4 2 2 1 4 5 3 2 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES NO NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES NO YES YES NO YES YES YES YES YES NO NO YES YES YES YES ...
result:
ok 40000 lines
Test #8:
score: 0
Accepted
time: 100ms
memory: 3408kb
input:
40000 6 3 5 3 6 2 5 1 4 3 2 1 1 2 3 6 1 4 3 1 1 3 4 2 1 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 6 2 6 4 1 3 2 6 5 2 5 6 5 5 3 5 5 6 6 2 3 6 2 5 1 4 3 6 2 5 1 4 6 4 2 2 1 1 2 1 2 2 2 2 1 1 2 1 2 1 3 3 3 2 1 3 2 1 3 2 3 1 6 4 5 5 1 3 4 6 2 5 1 3 2 5 5 4 3 4 6 2 4 4 3 5 6 2 1 4 3 2 2 1 1 3 1 2 2 3 1 1 2 2 3 3 1 ...
output:
YES YES YES YES NO YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES YE...
result:
ok 40000 lines
Test #9:
score: 0
Accepted
time: 105ms
memory: 3504kb
input:
40000 7 5 2 6 4 2 1 3 5 7 6 4 2 1 3 3 1 2 2 2 2 1 2 1 1 1 4 1 4 3 4 2 1 1 3 4 2 1 3 2 2 1 3 2 1 2 1 3 5 2 4 4 3 2 5 1 2 1 2 2 2 5 7 1 7 2 7 5 6 1 4 3 3 3 3 1 1 3 1 6 7 7 2 3 7 2 5 1 6 4 3 7 2 5 1 6 4 5 6 6 2 6 2 6 3 4 1 5 2 1 6 3 4 5 3 5 3 1 3 3 1 2 1 2 3 3 7 5 3 1 7 5 4 6 3 2 5 4 6 3 2 6 1 1 6 3 5 ...
output:
YES YES YES YES YES YES YES YES YES YES YES YES YES NO NO YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES NO YES YES NO YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES NO YES YES YES YES YES NO YES YES NO YES YES NO YES YES ...
result:
ok 40000 lines
Test #10:
score: 0
Accepted
time: 149ms
memory: 3500kb
input:
40000 4 2 4 4 1 3 2 4 2 3 4 4 3 6 3 5 6 2 4 5 1 3 2 1 3 1 1 2 6 1 8 5 6 1 7 2 8 6 5 3 4 1 7 5 2 3 3 1 2 8 7 8 6 6 1 3 4 6 1 5 2 3 4 6 1 5 2 6 8 7 2 6 8 5 7 1 3 2 4 6 5 7 1 3 2 4 8 7 1 1 1 1 1 1 4 3 3 2 4 3 1 2 4 3 1 2 4 4 3 3 1 3 4 2 1 3 2 4 4 3 2 2 1 1 2 1 2 2 7 5 3 5 2 3 7 1 6 4 2 3 1 6 4 7 5 6 7 ...
output:
NO YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES NO YES NO...
result:
ok 40000 lines
Test #11:
score: 0
Accepted
time: 142ms
memory: 3436kb
input:
40000 2 2 2 1 2 1 2 1 1 8 2 6 1 3 5 4 6 7 2 8 3 2 2 8 6 8 7 8 8 5 4 3 1 2 7 8 5 4 6 3 1 2 5 4 8 7 7 7 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 2 2 2 2 2 2 1 2 2 1 2 2 2 2 2 2 1 2 1 2 1 8 1 7 5 3 8 4 1 7 6 2 2 3 5 2 1 1 1 1 9 8 2 7 8 1 6 4 5 9 3 2 7 8 1 6 4 5 3 2 2 9 2 1 2 2 1 2 1 1 4 1 4 3 1 4 2 3 1 2 1 2 3 ...
output:
YES NO NO YES YES NO NO YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES NO YES YES YES NO YES NO NO NO YES YES NO YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES NO YES YES...
result:
ok 40000 lines
Test #12:
score: 0
Accepted
time: 118ms
memory: 3452kb
input:
40000 1 1 1 1 1 1 7 5 4 7 4 6 2 5 1 3 7 4 6 2 1 1 2 3 7 7 4 3 7 4 1 3 2 5 6 1 3 2 5 6 5 7 7 1 6 5 4 3 1 7 2 6 6 4 2 3 1 1 1 4 3 4 2 4 3 1 2 3 1 2 3 3 3 3 1 3 3 1 2 2 1 3 3 1 1 1 1 1 1 2 1 1 1 2 1 2 9 2 8 9 8 6 4 2 1 5 7 3 4 1 1 2 2 3 5 4 2 9 1 1 1 1 1 1 4 2 3 2 4 3 1 2 1 3 2 4 3 3 3 1 3 2 1 3 2 3 3 ...
output:
YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES NO NO YES YES NO YES YES YES YES NO NO YES YES YES YES YES YES YES YES YES NO YES NO NO NO YES NO YES YES YES NO YES YES YES YES YES NO NO YES YES YES YES YES YES YES YES NO YES NO YES YES YES NO YES YES YES YES YE...
result:
ok 40000 lines
Test #13:
score: 0
Accepted
time: 158ms
memory: 3444kb
input:
40000 6 3 5 4 3 2 5 1 6 2 3 1 2 1 1 6 6 2 1 1 1 2 1 1 6 5 4 1 3 5 6 2 4 1 3 6 2 4 2 2 6 6 8 2 7 5 8 4 7 1 3 2 6 6 2 1 3 1 1 1 1 7 1 1 1 1 1 1 11 6 5 2 4 11 6 9 3 8 1 7 5 10 2 4 3 6 8 5 3 1 4 1 1 8 3 8 6 4 8 5 1 3 7 2 4 1 2 2 2 1 3 3 4 8 4 2 1 2 2 1 1 2 2 5 5 1 1 5 3 4 2 1 5 3 4 2 5 9 2 9 8 7 5 6 2 4...
output:
NO YES YES NO YES NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES NO YES YES YES YES NO YES NO NO YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES NO YES NO YES YES YES YES YES YES NO YES YES YES YES YES YES NO NO YES NO YES YES YES YES...
result:
ok 40000 lines
Test #14:
score: 0
Accepted
time: 168ms
memory: 3440kb
input:
40000 5 4 3 1 5 4 2 3 1 4 2 3 1 5 4 12 1 12 8 11 5 1 7 3 10 6 4 9 12 2 4 3 6 2 1 1 2 9 11 12 10 11 12 2 2 1 2 1 2 1 2 4 3 4 2 3 4 1 2 3 1 2 2 1 3 2 2 1 2 1 2 1 2 6 4 5 2 5 3 4 1 6 2 3 1 6 3 6 6 3 6 4 4 1 3 4 1 2 3 4 1 2 2 3 1 2 3 2 1 1 3 3 11 8 4 11 3 10 5 1 6 4 8 7 9 2 11 3 1 6 4 7 9 2 10 8 11 10 1...
output:
YES NO YES YES YES YES YES NO NO YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES YES YES NO YES YES YES YES YES YES YES YES YES YES NO YES YES NO YES YES YES YES NO YES YES NO YES YES YES YES NO YES YES YES YES NO YES YES YES YES YES NO YES NO YES YES YES YES YES YES YES NO YES YE...
result:
ok 40000 lines
Test #15:
score: 0
Accepted
time: 43ms
memory: 3504kb
input:
10000 10 5 6 5 6 9 10 7 1 3 2 4 8 5 6 9 1 2 8 9 9 10 10 10 10 6 5 5 6 7 2 4 8 10 9 1 3 5 2 8 9 1 3 9 7 7 10 10 5 3 4 3 5 4 1 2 4 1 2 3 5 4 5 6 3 5 6 1 2 5 4 3 1 4 3 4 5 5 5 4 10 8 5 7 3 1 5 9 8 2 6 10 4 3 1 5 9 8 2 6 4 6 1 4 8 10 10 6 4 7 1 4 5 8 9 3 10 2 6 1 4 8 3 2 6 2 1 2 1 10 3 10 9 6 4 7 2 5 8 ...
output:
NO NO NO NO YES YES NO YES YES YES NO NO YES YES YES NO NO YES YES YES YES NO YES YES NO YES YES YES YES YES YES YES YES YES NO YES YES YES NO YES YES YES NO YES YES NO YES YES YES YES NO NO YES YES YES NO NO NO YES YES YES YES YES YES NO YES YES NO YES YES YES NO YES NO NO NO YES YES NO YES YES YES...
result:
ok 10000 lines
Test #16:
score: 0
Accepted
time: 113ms
memory: 3508kb
input:
10000 15 15 1 15 6 5 8 3 2 12 9 10 1 4 7 14 11 13 15 6 5 8 3 2 12 9 10 1 4 7 14 11 13 10 8 3 6 5 6 2 4 1 3 8 7 6 1 7 7 7 8 8 8 7 19 1 19 7 10 13 3 5 16 12 17 19 8 1 2 11 18 6 14 9 15 4 1 4 8 1 1 5 1 1 3 2 5 2 2 1 17 18 18 18 17 18 20 11 12 5 14 20 19 1 10 8 3 13 15 4 2 16 18 7 6 17 9 11 12 5 14 10 8...
output:
YES NO NO NO YES YES YES YES NO NO NO NO YES NO NO NO NO YES NO YES NO NO YES YES YES NO NO NO YES NO NO NO YES YES YES YES YES YES YES NO YES YES YES NO YES NO YES YES YES YES NO NO YES YES YES NO YES NO YES YES YES YES YES YES YES NO YES YES YES NO NO NO NO NO YES NO NO YES YES YES NO NO YES YES Y...
result:
ok 10000 lines
Test #17:
score: 0
Accepted
time: 165ms
memory: 3476kb
input:
10000 4 3 4 1 4 3 2 1 3 2 2 4 3 4 1 1 1 1 1 1 79 70 9 73 34 21 66 52 46 72 32 63 44 48 11 77 40 15 51 50 67 70 53 62 3 31 69 20 41 28 30 54 10 7 19 24 74 5 4 59 1 18 37 68 25 23 58 6 33 65 55 43 39 17 12 49 35 56 8 75 64 45 14 36 22 13 57 60 27 71 61 42 9 76 2 16 79 78 26 38 47 29 73 34 21 66 52 46 ...
output:
YES YES YES NO YES NO YES YES YES NO YES NO NO YES YES YES YES NO YES NO NO YES YES YES NO NO YES NO YES YES YES YES YES YES YES YES NO NO YES NO YES NO YES NO YES YES YES YES YES NO YES YES NO NO YES NO YES NO YES NO NO NO YES YES YES YES YES NO YES NO NO YES YES YES YES YES YES YES YES YES NO YES ...
result:
ok 10000 lines
Test #18:
score: -100
Time Limit Exceeded
input:
10 10201 2518 7686 8039 7511 4669 4613 6162 1290 9288 8391 4993 2070 8427 2499 3018 4916 4911 6060 8440 8901 8250 8997 3347 142 4313 3070 4228 9879 9075 2665 5642 762 2855 9465 1799 10036 6353 2529 8827 686 3883 6577 1430 5052 8277 6025 3863 8054 2652 618 8088 8364 3502 7890 391 9096 8691 919 6628 5...