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
AC × 19
AC × 37
AC × 55
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