Luzhiled's Library

This documentation is automatically generated by competitive-verifier/competitive-verifier

View the Project on GitHub ei1333/library

:heavy_check_mark: test/verify/aoj-dpl-1-d.test.cpp

Depends on

Code

// clang-format off
// competitive-verifier: PROBLEM http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=DPL_1_D
// clang-format on

#include <iostream>
#include <vector>

#include "../../dp/longest-increasing-subsequence.hpp"

using namespace std;

int main() {
  int N;
  cin >> N;
  vector<int> A(N);
  for (int& a : A) cin >> a;
  cout << longest_increasing_subsequence(A, true) << endl;
}
#line 1 "test/verify/aoj-dpl-1-d.test.cpp"
// clang-format off
// competitive-verifier: PROBLEM http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=DPL_1_D
// clang-format on

#include <iostream>
#include <vector>

#line 2 "dp/longest-increasing-subsequence.hpp"

#include <algorithm>
#include <cstddef>
#line 6 "dp/longest-increasing-subsequence.hpp"

template <typename T>
std::size_t longest_increasing_subsequence(const std::vector<T>& a,
                                           bool strict) {
  std::vector<T> lis;
  for (auto& p : a) {
    typename std::vector<T>::iterator it;
    if (strict)
      it = std::lower_bound(lis.begin(), lis.end(), p);
    else
      it = std::upper_bound(lis.begin(), lis.end(), p);
    if (lis.end() == it)
      lis.emplace_back(p);
    else
      *it = p;
  }
  return lis.size();
}
#line 9 "test/verify/aoj-dpl-1-d.test.cpp"

using namespace std;

int main() {
  int N;
  cin >> N;
  vector<int> A(N);
  for (int& a : A) cin >> a;
  cout << longest_increasing_subsequence(A, true) << endl;
}

Test cases

Env Name Status Elapsed Memory
g++ 00_sample_00 :heavy_check_mark: AC 2 ms 4 MB
g++ 00_sample_01 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_00 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_01 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_02 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_03 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_04 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_05 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_06 :heavy_check_mark: AC 2 ms 4 MB
g++ 01_small_07 :heavy_check_mark: AC 2 ms 4 MB
g++ 02_rand_00 :heavy_check_mark: AC 2 ms 4 MB
g++ 02_rand_01 :heavy_check_mark: AC 2 ms 4 MB
g++ 02_rand_02 :heavy_check_mark: AC 2 ms 4 MB
g++ 02_rand_03 :heavy_check_mark: AC 2 ms 4 MB
g++ 03_linear_00 :heavy_check_mark: AC 2 ms 4 MB
g++ 03_linear_01 :heavy_check_mark: AC 2 ms 4 MB
g++ 03_linear_03 :heavy_check_mark: AC 2 ms 4 MB
g++ 03_linear_04 :heavy_check_mark: AC 2 ms 4 MB
g++ 04_critical_00 :heavy_check_mark: AC 3 ms 4 MB
g++ 04_critical_01 :heavy_check_mark: AC 3 ms 4 MB
g++ 04_critical_02 :heavy_check_mark: AC 3 ms 4 MB
g++ 04_critical_03 :heavy_check_mark: AC 3 ms 4 MB
g++ 05_maximum_00 :heavy_check_mark: AC 10 ms 4 MB
g++ 05_maximum_01 :heavy_check_mark: AC 11 ms 4 MB
g++ 05_maximum_02 :heavy_check_mark: AC 14 ms 4 MB
g++ 05_maximum_03 :heavy_check_mark: AC 18 ms 4 MB
g++ 05_maximum_04 :heavy_check_mark: AC 21 ms 4 MB
g++ 05_maximum_05 :heavy_check_mark: AC 26 ms 4 MB
g++ 05_maximum_06 :heavy_check_mark: AC 24 ms 4 MB
g++ 05_maximum_07 :heavy_check_mark: AC 23 ms 4 MB
clang++ 00_sample_00 :heavy_check_mark: AC 2 ms 4 MB
clang++ 00_sample_01 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_00 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_01 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_02 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_03 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_04 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_05 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_06 :heavy_check_mark: AC 2 ms 4 MB
clang++ 01_small_07 :heavy_check_mark: AC 2 ms 4 MB
clang++ 02_rand_00 :heavy_check_mark: AC 2 ms 4 MB
clang++ 02_rand_01 :heavy_check_mark: AC 2 ms 4 MB
clang++ 02_rand_02 :heavy_check_mark: AC 2 ms 4 MB
clang++ 02_rand_03 :heavy_check_mark: AC 2 ms 4 MB
clang++ 03_linear_00 :heavy_check_mark: AC 2 ms 4 MB
clang++ 03_linear_01 :heavy_check_mark: AC 2 ms 4 MB
clang++ 03_linear_03 :heavy_check_mark: AC 2 ms 4 MB
clang++ 03_linear_04 :heavy_check_mark: AC 2 ms 4 MB
clang++ 04_critical_00 :heavy_check_mark: AC 3 ms 4 MB
clang++ 04_critical_01 :heavy_check_mark: AC 4 ms 4 MB
clang++ 04_critical_02 :heavy_check_mark: AC 3 ms 4 MB
clang++ 04_critical_03 :heavy_check_mark: AC 3 ms 4 MB
clang++ 05_maximum_00 :heavy_check_mark: AC 10 ms 4 MB
clang++ 05_maximum_01 :heavy_check_mark: AC 11 ms 4 MB
clang++ 05_maximum_02 :heavy_check_mark: AC 12 ms 4 MB
clang++ 05_maximum_03 :heavy_check_mark: AC 16 ms 4 MB
clang++ 05_maximum_04 :heavy_check_mark: AC 18 ms 4 MB
clang++ 05_maximum_05 :heavy_check_mark: AC 24 ms 4 MB
clang++ 05_maximum_06 :heavy_check_mark: AC 28 ms 4 MB
clang++ 05_maximum_07 :heavy_check_mark: AC 24 ms 4 MB
Back to top page