Guest User

Untitled

a guest
Apr 22nd, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.67 KB | None | 0 0
  1. #include <cassert>
  2. #include <vector>
  3.  
  4. using namespace std;
  5.  
  6. vector<int> solution(int N, vector<int> &A) {
  7.  
  8. vector<int> counters;
  9. counters.resize(N);
  10.  
  11. auto base_counter = 0;
  12. auto max_counter = 0;
  13. for (auto x: A) {
  14. assert(x >= 1
  15. && x <= N + 1);
  16. if (x >= 1 && x < N + 1) {
  17. auto &counter = counters[x -1];
  18. counter = max(counter, base_counter) + 1;
  19. max_counter = max(max_counter, counter);
  20. }
  21. else {
  22. base_counter = max_counter;
  23. }
  24. }
  25.  
  26. for (auto& counter: counters) {
  27. counter = max(counter, base_counter);
  28. }
  29.  
  30. return counters;
  31. }
Add Comment
Please, Sign In to add comment