fork download
  1. #include <bits/stdc++.h>
  2. #define taskname ""
  3. #define ff first
  4. #define ss second
  5. using namespace std;
  6. using ld = long double;
  7. using ull = unsigned long long;
  8. using ll = long long;
  9. using pll = pair <ll, ll>;
  10. using pii = pair <int, int>;
  11. const char el = '\n';
  12. const char sp = ' ';
  13. const ll oo = 1e9; //1e18;
  14. const ll maxN = 2e5 + 5;
  15. int n, e, c = 0, a[maxN];
  16. map <int, int> mp;
  17.  
  18. int main ()
  19. {
  20. ios_base::sync_with_stdio(0);
  21. cin.tie(0);
  22. if (fopen(taskname".inp", "r"))
  23. {
  24. freopen(taskname".inp","r",stdin);
  25. freopen(taskname".out","w",stdout);
  26. }
  27. cin >> n;
  28. for(int i = 1;i <= n;++i)
  29. {
  30. cin >> a[i];
  31. mp[a[i]] = mp[a[i] - 1] + 1;
  32. if(c < mp[a[i]]) {
  33. c = mp[a[i]];
  34. e = a[i];
  35. }
  36. }
  37. cout << c << el;
  38. vector<int> vec;
  39. for(int i = n;i > 0;--i)
  40. if(a[i] == e) {
  41. vec.push_back(i);
  42. e--;
  43. }
  44.  
  45. for(int i = vec.size() - 1;i >= 0;i--) cout << vec[i] << ' ';
  46. }
  47.  
Success #stdin #stdout 0.01s 5316KB
stdin
Standard input is empty
stdout
0