Submission #6264485
Source Code Expand
#include <stdio.h> #include <stdlib.h> #include <assert.h> #include <fstream> #include <iostream> #include <sstream> #include <iomanip> #include <algorithm> #include <bitset> #include <array> #include <vector> #include <queue> #include <set> #include <cmath> // 変数名にy1が使えなくなるかも…。 #include <map> #include <unordered_map> #include <unordered_set> #include <limits> #include <string> typedef __int128_t int128_t; std::istream &operator>>(std::istream& input, int128_t& value) { // int128_tの入力。入力が64bitに収まる前提。 long long tmp; input >> tmp; value = tmp; return input; } std::ostream &operator<<(std::ostream& output, const int128_t value) { // int128_tの出力。出力が64bitに収まる前提。 output << (long long)value; return output; } std::vector<int> LIS(const std::vector<int>& vec) { const int INF = std::numeric_limits<int>::max(); std::vector<int> dp; dp.resize(vec.size(), INF); // 長さがi+1であるような増加部分列における最終要素の最小値(存在しない場合INF) std::vector<int> id; id.resize(vec.size()); // i番目の要素を最終要素としたときの、増加部分列の長さ-1。 for (int i = 0; i < vec.size(); i++) { auto itr = std::lower_bound(dp.begin(), dp.end(), vec[i]); *itr = vec[i]; id[i] = std::distance(dp.begin(), itr); } int m = *std::max_element(id.begin(), id.end()); std::vector<int> ret; ret.resize(m+1); for (int i = vec.size() - 1; 0 <= i; i--) { if (id[i] == m) { ret[m] = vec[i]; m--; } } return ret; } int N; std::vector<int> vec; int main(void) { std::cin >> N; for (int i = 1; i <= N; i++) { int c; std::cin >> c; vec.push_back(c); } auto ret = LIS(vec); std::cout << N - ret.size() << std::endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - トランプ挿入ソート |
User | critter |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 1988 Byte |
Status | AC |
Exec Time | 11 ms |
Memory | 768 KB |
Judge Result
Set Name | smallA | smallB | all | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 10 / 10 | 40 / 40 | 50 / 50 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
smallA | test_01_ABC.txt, test_04_ABC.txt, test_07_ABC.txt, test_10_ABC.txt, test_13_ABC.txt, test_16_ABC.txt, test_19_ABC.txt, test_22_ABC.txt, test_25_ABC.txt, test_28_ABC.txt, test_31_ABC.txt, test_32_ABC.txt, test_35_ABC.txt, test_38_ABC.txt, test_41_ABC.txt, test_44_ABC.txt, test_47_ABC.txt, test_50_ABC.txt, test_53_ABC.txt |
smallB | test_01_ABC.txt, test_02_AB.txt, test_04_ABC.txt, test_05_AB.txt, test_07_ABC.txt, test_08_AB.txt, test_10_ABC.txt, test_11_AB.txt, test_13_ABC.txt, test_14_AB.txt, test_16_ABC.txt, test_17_AB.txt, test_19_ABC.txt, test_20_AB.txt, test_22_ABC.txt, test_23_AB.txt, test_25_ABC.txt, test_26_AB.txt, test_28_ABC.txt, test_29_AB.txt, test_31_ABC.txt, test_32_ABC.txt, test_33_AB.txt, test_35_ABC.txt, test_36_AB.txt, test_38_ABC.txt, test_39_AB.txt, test_41_ABC.txt, test_42_AB.txt, test_44_ABC.txt, test_45_AB.txt, test_47_ABC.txt, test_48_AB.txt, test_50_ABC.txt, test_51_AB.txt, test_53_ABC.txt, test_54_AB.txt |
all | test_01_ABC.txt, test_02_AB.txt, test_03_A.txt, test_04_ABC.txt, test_05_AB.txt, test_06_A.txt, test_07_ABC.txt, test_08_AB.txt, test_09_A.txt, test_10_ABC.txt, test_11_AB.txt, test_12_A.txt, test_13_ABC.txt, test_14_AB.txt, test_15_A.txt, test_16_ABC.txt, test_17_AB.txt, test_18_A.txt, test_19_ABC.txt, test_20_AB.txt, test_21_A.txt, test_22_ABC.txt, test_23_AB.txt, test_24_A.txt, test_25_ABC.txt, test_26_AB.txt, test_27_A.txt, test_28_ABC.txt, test_29_AB.txt, test_30_A.txt, test_31_ABC.txt, test_32_ABC.txt, test_33_AB.txt, test_34_A.txt, test_35_ABC.txt, test_36_AB.txt, test_37_A.txt, test_38_ABC.txt, test_39_AB.txt, test_40_A.txt, test_41_ABC.txt, test_42_AB.txt, test_43_A.txt, test_44_ABC.txt, test_45_AB.txt, test_46_A.txt, test_47_ABC.txt, test_48_AB.txt, test_49_A.txt, test_50_ABC.txt, test_51_AB.txt, test_52_A.txt, test_53_ABC.txt, test_54_AB.txt, test_55_A.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
sample_01.txt | AC | 1 ms | 256 KB |
sample_02.txt | AC | 1 ms | 256 KB |
sample_03.txt | AC | 1 ms | 256 KB |
test_01_ABC.txt | AC | 1 ms | 256 KB |
test_02_AB.txt | AC | 1 ms | 256 KB |
test_03_A.txt | AC | 11 ms | 640 KB |
test_04_ABC.txt | AC | 1 ms | 256 KB |
test_05_AB.txt | AC | 1 ms | 256 KB |
test_06_A.txt | AC | 2 ms | 256 KB |
test_07_ABC.txt | AC | 1 ms | 256 KB |
test_08_AB.txt | AC | 1 ms | 256 KB |
test_09_A.txt | AC | 11 ms | 640 KB |
test_10_ABC.txt | AC | 1 ms | 256 KB |
test_11_AB.txt | AC | 1 ms | 256 KB |
test_12_A.txt | AC | 6 ms | 384 KB |
test_13_ABC.txt | AC | 1 ms | 256 KB |
test_14_AB.txt | AC | 1 ms | 256 KB |
test_15_A.txt | AC | 11 ms | 640 KB |
test_16_ABC.txt | AC | 1 ms | 256 KB |
test_17_AB.txt | AC | 1 ms | 256 KB |
test_18_A.txt | AC | 2 ms | 256 KB |
test_19_ABC.txt | AC | 1 ms | 256 KB |
test_20_AB.txt | AC | 1 ms | 256 KB |
test_21_A.txt | AC | 11 ms | 640 KB |
test_22_ABC.txt | AC | 1 ms | 256 KB |
test_23_AB.txt | AC | 1 ms | 256 KB |
test_24_A.txt | AC | 8 ms | 512 KB |
test_25_ABC.txt | AC | 1 ms | 256 KB |
test_26_AB.txt | AC | 1 ms | 256 KB |
test_27_A.txt | AC | 11 ms | 640 KB |
test_28_ABC.txt | AC | 1 ms | 256 KB |
test_29_AB.txt | AC | 1 ms | 256 KB |
test_30_A.txt | AC | 9 ms | 512 KB |
test_31_ABC.txt | AC | 1 ms | 256 KB |
test_32_ABC.txt | AC | 1 ms | 256 KB |
test_33_AB.txt | AC | 1 ms | 256 KB |
test_34_A.txt | AC | 11 ms | 768 KB |
test_35_ABC.txt | AC | 1 ms | 256 KB |
test_36_AB.txt | AC | 1 ms | 256 KB |
test_37_A.txt | AC | 3 ms | 384 KB |
test_38_ABC.txt | AC | 1 ms | 256 KB |
test_39_AB.txt | AC | 1 ms | 256 KB |
test_40_A.txt | AC | 9 ms | 640 KB |
test_41_ABC.txt | AC | 1 ms | 256 KB |
test_42_AB.txt | AC | 1 ms | 256 KB |
test_43_A.txt | AC | 2 ms | 256 KB |
test_44_ABC.txt | AC | 1 ms | 256 KB |
test_45_AB.txt | AC | 1 ms | 256 KB |
test_46_A.txt | AC | 11 ms | 640 KB |
test_47_ABC.txt | AC | 1 ms | 256 KB |
test_48_AB.txt | AC | 1 ms | 256 KB |
test_49_A.txt | AC | 2 ms | 256 KB |
test_50_ABC.txt | AC | 1 ms | 256 KB |
test_51_AB.txt | AC | 1 ms | 256 KB |
test_52_A.txt | AC | 10 ms | 640 KB |
test_53_ABC.txt | AC | 1 ms | 256 KB |
test_54_AB.txt | AC | 1 ms | 256 KB |
test_55_A.txt | AC | 10 ms | 640 KB |