제출 #648455

#제출 시각아이디문제언어결과실행 시간메모리
648455borisAngelovRabbit Carrot (LMIO19_triusis)C++17
100 / 100
37 ms4732 KiB
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

const int MAXN = 200005;
const int INF = 2000000000;

int n, m;
int a[MAXN];

vector<int> b;

int min_end[MAXN];

int main() {
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    cin >> n >> m;

    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        if (m * i - a[i] >= 0) b.push_back(m * i - a[i]);
    }

    min_end[0] = -INF;
    for (int i = 1; i <= n; i++) min_end[i] = INF;

    int ans = 0;

    for (int i = 0; i < b.size(); i++) {
        int idx = upper_bound(min_end + 1, min_end + n + 1, b[i]) - min_end;
        idx--;

        ans = max(ans, idx + 1);
        min_end[idx + 1] = min(min_end[idx + 1], b[i]);
    }

    cout << n - ans << endl;

    return 0;
}

컴파일 시 표준 에러 (stderr) 메시지

triusis.cpp: In function 'int main()':
triusis.cpp:32:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for (int i = 0; i < b.size(); i++) {
      |                     ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...