Submission #50536832
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/modint>
namespace {
using ModInt [[maybe_unused]] = atcoder::modint998244353;
using Num [[maybe_unused]] = long long int;
using Vec [[maybe_unused]] = std::vector<Num>;
using Set [[maybe_unused]] = std::set<Num>;
using Mset [[maybe_unused]] = std::multiset<Num>;
using Edges [[maybe_unused]] = std::vector<std::vector<Num>>;
template<typename T>
using Q [[maybe_unused]] = std::queue<T>;
template<typename T>
using PQ [[maybe_unused]] = std::priority_queue<T, std::vector<T>, std::greater<T>>;
}
void solve(std::istream& is, std::ostream& os) {
Num n, k;
is >> n >> k;
Vec ns(n);
for(auto&& a : ns) {
is >> a;
}
const auto left_min = *std::min_element(ns.begin(), ns.begin() + k);
const auto right_max = *std::max_element(ns.begin() + k, ns.end());
if (left_min >= right_max) {
os << "-1\n";
return;
}
if (ns.at(k-1) < ns.at(k)) {
os << "1\n";
return;
}
std::vector<std::pair<Num, Num>> ordered;
for(Num i{0}; i<k; ++i) {
ordered.push_back(std::make_pair(ns.at(i), -i));
}
for(Num i{k}; i<n; ++i) {
ordered.push_back(std::make_pair(ns.at(i), -i));
}
std::ranges::sort(ordered);
Set nodes;
constexpr Num Inf = 1000000000000000LL;
Num ans = Inf;
for(Num i{0}; i<n; ++i) {
const auto& [val, nidx] = ordered.at(i);
const auto idx = -nidx;
if (idx < k) {
nodes.insert(idx);
} else if (!nodes.empty()) {
ans = std::min(ans, idx - (*nodes.rbegin()));
}
}
if (ans >= Inf) {
os << "-1\n";
} else {
os << ans << "\n";
}
}
int main(void) {
solve(std::cin, std::cout);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | A - Larger Score |
| User | zettsut |
| Language | C++ 20 (gcc 12.2) |
| Score | 400 |
| Code Size | 1883 Byte |
| Status | AC |
| Exec Time | 306 ms |
| Memory | 30944 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt |
| All | 00-sample-001.txt, 00-sample-002.txt, 00-sample-003.txt, 01-001.txt, 01-002.txt, 01-003.txt, 01-004.txt, 01-005.txt, 01-006.txt, 01-007.txt, 01-008.txt, 01-009.txt, 01-010.txt, 01-011.txt, 01-012.txt, 01-013.txt, 01-014.txt, 01-015.txt, 01-016.txt, 01-017.txt, 01-018.txt, 01-019.txt, 01-020.txt, 01-021.txt, 01-022.txt, 01-023.txt, 01-024.txt, 01-025.txt, 01-026.txt, 01-027.txt, 01-028.txt, 01-029.txt, 01-030.txt, 01-031.txt, 01-032.txt, 01-033.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-001.txt | AC | 1 ms | 3492 KiB |
| 00-sample-002.txt | AC | 1 ms | 3508 KiB |
| 00-sample-003.txt | AC | 2 ms | 3552 KiB |
| 01-001.txt | AC | 1 ms | 3492 KiB |
| 01-002.txt | AC | 11 ms | 4080 KiB |
| 01-003.txt | AC | 87 ms | 5988 KiB |
| 01-004.txt | AC | 87 ms | 14344 KiB |
| 01-005.txt | AC | 35 ms | 4192 KiB |
| 01-006.txt | AC | 14 ms | 3660 KiB |
| 01-007.txt | AC | 107 ms | 16480 KiB |
| 01-008.txt | AC | 89 ms | 10848 KiB |
| 01-009.txt | AC | 92 ms | 14644 KiB |
| 01-010.txt | AC | 73 ms | 5476 KiB |
| 01-011.txt | AC | 96 ms | 6336 KiB |
| 01-012.txt | AC | 96 ms | 6360 KiB |
| 01-013.txt | AC | 143 ms | 17172 KiB |
| 01-014.txt | AC | 96 ms | 6268 KiB |
| 01-015.txt | AC | 97 ms | 6448 KiB |
| 01-016.txt | AC | 306 ms | 28924 KiB |
| 01-017.txt | AC | 226 ms | 22272 KiB |
| 01-018.txt | AC | 96 ms | 6260 KiB |
| 01-019.txt | AC | 171 ms | 19104 KiB |
| 01-020.txt | AC | 196 ms | 30944 KiB |
| 01-021.txt | AC | 181 ms | 27676 KiB |
| 01-022.txt | AC | 182 ms | 30308 KiB |
| 01-023.txt | AC | 148 ms | 16520 KiB |
| 01-024.txt | AC | 96 ms | 6392 KiB |
| 01-025.txt | AC | 135 ms | 14568 KiB |
| 01-026.txt | AC | 96 ms | 6352 KiB |
| 01-027.txt | AC | 149 ms | 22124 KiB |
| 01-028.txt | AC | 148 ms | 22012 KiB |
| 01-029.txt | AC | 152 ms | 21908 KiB |
| 01-030.txt | AC | 148 ms | 22016 KiB |
| 01-031.txt | AC | 149 ms | 22024 KiB |
| 01-032.txt | AC | 148 ms | 21908 KiB |
| 01-033.txt | AC | 149 ms | 21980 KiB |