| Task: | Frontier |
| Sender: | Naming is (NP) Hard |
| Submission time: | 2025-11-08 16:04:24 +0200 |
| Language: | C++ (C++20) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.00 s | details |
| #2 | ACCEPTED | 0.00 s | details |
| #3 | ACCEPTED | 0.00 s | details |
| #4 | ACCEPTED | 0.00 s | details |
| #5 | ACCEPTED | 0.00 s | details |
| #6 | ACCEPTED | 0.00 s | details |
| #7 | ACCEPTED | 0.00 s | details |
| #8 | ACCEPTED | 0.00 s | details |
| #9 | ACCEPTED | 0.00 s | details |
| #10 | ACCEPTED | 0.00 s | details |
| #11 | ACCEPTED | 0.00 s | details |
| #12 | ACCEPTED | 0.00 s | details |
| #13 | ACCEPTED | 0.00 s | details |
| #14 | ACCEPTED | 0.00 s | details |
| #15 | ACCEPTED | 0.00 s | details |
| #16 | ACCEPTED | 0.00 s | details |
| #17 | ACCEPTED | 0.01 s | details |
| #18 | ACCEPTED | 0.04 s | details |
| #19 | ACCEPTED | 0.04 s | details |
Code
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#define D(x) {x;}
#else
#define D(x)
#endif
#define rep(i, a, b) for(int i = a; i < (b); ++i)
#define all(x) begin(x),end(x)
#define sz(x) (int) (x).size()
using ll = long long;
using pii = pair<int, int>;
using vi = vector<int>;
int main() {
cin.tie(0) -> sync_with_stdio(0);
cin.exceptions(cin.failbit);
int n, s;
cin >> n >> s;
vector<vector<int>> id(s+1);
for (int i = 0; i < n; ++i) {
int x;
cin >> x;
id[x].push_back(i);
}
if (n == 1) {
cout << "NO\n";
return 0;
}
for (int i = 1; i <= s; ++i) {
if (id[i].size() == 0) continue;
int a = id[i][0];
int b = id[i].back();
for (int j = 1; j <= s; ++j) if (i != j) {
auto it = lower_bound(all(id[j]), a);
if (it != id[j].end()) {
int c = *it;
it = lower_bound(all(id[j]), b);
if (it != id[j].begin()) {
--it;
int d = *it;
it = lower_bound(all(id[i]), c);
if (it != id[i].end()) {
if (c < *it && *it < d) {
cout << "NO\n";
return 0;
}
}
}
}
}
auto it = lower_bound(all(id[0]), a);
if (it != id[0].end()) {
if (a < *it && *it < b) {
cout << "NO\n";
return 0;
}
}
}
cout << "YES\n";
}Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 8 3 0 1 3 1 3 2 3 0 |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 3 1 0 1 0 |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 10 10 0 2 3 2 8 4 7 6 7 0 |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 18 100 0 95 64 79 64 68 64 88 58 88 8... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 105 1000 0 110 123 192 371 192 94 192 3... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 76 1000 0 615 320 101 56 683 391 350 3... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 112 2000 0 116 1100 256 324 256 876 256... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 115 2000 0 388 1955 1661 1417 1580 1053... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 92 2000 0 309 838 1212 553 863 553 141... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 18 10 0 3 4 10 9 4 2 8 6 8 2 7 2 9 1... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 53 100 0 1 3 82 100 25 27 85 61 53 61... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 94 1000 0 675 229 663 771 140 314 140 ... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 110 1000 0 493 827 157 538 946 1 736 31... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 96 1000 0 206 843 543 401 819 800 444 ... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 198 2000 0 1661 1800 19 1666 879 1021 9... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 538 2000 0 1138 1562 1509 1339 735 1993... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 98999 2000 0 1798 1467 884 1426 1191 601 ... |
| correct output |
|---|
| NO |
| user output |
|---|
| NO |
Test 18
Verdict: ACCEPTED
| input |
|---|
| 3373 2000 0 121 0 1094 0 58 0 306 0 1273... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 3370 2000 0 1602 0 455 0 710 0 1514 0 84... |
| correct output |
|---|
| YES |
| user output |
|---|
| YES |
