#include <iostream> #include <vector> #include <stack> using namespace std;
string canSortWagons(int n, int k, const vector<int>& wagons) { vector<stack<int>> stacks(k); // Сортировочные пути int next_wagon = 1; // Следующий ожидаемый вагон
for (int wagon : wagons) { if (wagon == next_wagon) { // Если вагон можно сразу переместить на конечный путь next_wagon++; } else { bool placed = false;
// Перебираем все сортировочные пути for (int i = 0; i < k; i++) { if (stacks[i].empty() || stacks[i].top() > wagon) { stacks[i].push(wagon); // Кладём вагон в подходящий путь placed = true; break; } }
if (!placed) return "NO"; // Если вагон некуда положить }
// Перемещаем вагоны с сортировочных путей на конечный путь for (int i = 0; i < k; i++) { while (!stacks[i].empty() && stacks[i].top() == next_wagon) { stacks[i].pop(); next_wagon++; } } }
return "YES"; // Если все вагоны успешно перемещены }
int main() { int n, k; cin >> n >> k; vector<int> wagons(n); for (int i = 0; i < n; i++) { cin >> wagons[i]; }
#include <vector>
#include <stack>
using namespace std;
string canSortWagons(int n, int k, const vector<int>& wagons) {
vector<stack<int>> stacks(k); // Сортировочные пути
int next_wagon = 1; // Следующий ожидаемый вагон
for (int wagon : wagons) {
if (wagon == next_wagon) {
// Если вагон можно сразу переместить на конечный путь
next_wagon++;
} else {
bool placed = false;
// Перебираем все сортировочные пути
for (int i = 0; i < k; i++) {
if (stacks[i].empty() || stacks[i].top() > wagon) {
stacks[i].push(wagon); // Кладём вагон в подходящий путь
placed = true;
break;
}
}
if (!placed) return "NO"; // Если вагон некуда положить
}
// Перемещаем вагоны с сортировочных путей на конечный путь
for (int i = 0; i < k; i++) {
while (!stacks[i].empty() && stacks[i].top() == next_wagon) {
stacks[i].pop();
next_wagon++;
}
}
}
return "YES"; // Если все вагоны успешно перемещены
}
int main() {
int n, k;
cin >> n >> k;
vector<int> wagons(n);
for (int i = 0; i < n; i++) {
cin >> wagons[i];
}
cout << canSortWagons(n, k, wagons) << endl;
return 0;
}