#include <bits/stdc++.h>
using namespace std;
void setup()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
}
int n, k, last;
array<int, 3> p[3001];
set<int> s[3001][3001];
inline bool Comp(const array<int, 3> &ina, const array<int, 3> &inb)
{
return ina[1] < inb[1];
}
int main()
{
setup();
cin >> n >> k;
for (int i = 1; i <= n; ++i)
{
cin >> p[i][0] >> p[i][1];
p[i][2] = i;
}
sort(p + 1, p + 1 + n, Comp);
for (int i = 1; i <= n; ++i)
{
last = i - 1;
while (0 < last && p[i][0] < p[last][1])
{
last--;
}
for (int j = 1; j <= k; ++j)
{
if (s[last][j - 1].size() == j - 1)
{
s[i][j] = s[last][j - 1];
s[i][j].insert(p[i][2]);
}
if (s[i - 1][j].size() == j)
{
s[i][j] = min(s[i][j], s[i - 1][j]);
}
}
}
if (s[n][k].size() == k)
{
for (auto & i : s[n][k])
{
cout << i << "\n";
}
}
else
{
cout << -1;
}
return 0;
}
| # | 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... |