#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n, i, j;
cin >> n;
vector<pair<pair<int, int>, int>> a(n);
for (i = 0; i < n; i++)
{
cin >> a[i].first.first >> a[i].first.second;
a[i].second = i;
}
sort(a.begin(), a.end());
vector<int> opt(n);
opt[0] = 1;
vector<int> last(n, -1);
for (i = 1; i < n; i++)
{
int best = 0;
for (j = i-1; j >= 0; j--)
{
if (a[j].first.second < a[i].first.second && opt[j] > best)
{
best = opt[j];
last[i] = j;
}
}
opt[i] = best + 1;
}
int max = 0, maxi;
for (i = 0; i < n; i++)
{
if (opt[i] > max)
{
max = opt[i];
maxi = i;
}
}
cout << max << '\n';
i = maxi;
vector<int> out;
out.reserve(max);
while (i != -1)
{
out.push_back(i);
i = last[i];
}
for (i = max-1; i >= 0; i--)
{
cout << a[out[i]].second + 1 << ' ';
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 0/100 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1956 KiB | |||
2 | Időlimit túllépés | 0/0 | 300ms | 2428 KiB | |||
3 | Hibás válasz | 0/4 | 3ms | 2320 KiB | |||
4 | Hibás válasz | 0/4 | 3ms | 2404 KiB | |||
5 | Hibás válasz | 0/4 | 3ms | 2468 KiB | |||
6 | Hibás válasz | 0/4 | 2ms | 2576 KiB | |||
7 | Hibás válasz | 0/4 | 3ms | 2820 KiB | |||
8 | Hibás válasz | 0/4 | 3ms | 2920 KiB | |||
9 | Hibás válasz | 0/4 | 3ms | 2976 KiB | |||
10 | Hibás válasz | 0/4 | 6ms | 3120 KiB | |||
11 | Hibás válasz | 0/4 | 65ms | 3536 KiB | |||
12 | Időlimit túllépés | 0/4 | 246ms | 4120 KiB | |||
13 | Időlimit túllépés | 0/6 | 246ms | 4120 KiB | |||
14 | Időlimit túllépés | 0/6 | 254ms | 3584 KiB | |||
15 | Időlimit túllépés | 0/6 | 261ms | 3884 KiB | |||
16 | Időlimit túllépés | 0/6 | 266ms | 4464 KiB | |||
17 | Időlimit túllépés | 0/6 | 273ms | 4580 KiB | |||
18 | Időlimit túllépés | 0/6 | 257ms | 4796 KiB | |||
19 | Időlimit túllépés | 0/6 | 266ms | 4952 KiB | |||
20 | Időlimit túllépés | 0/6 | 261ms | 5132 KiB | |||
21 | Időlimit túllépés | 0/6 | 286ms | 5252 KiB | |||
22 | Időlimit túllépés | 0/6 | 266ms | 5212 KiB |