Submission #890192

#TimeUsernameProblemLanguageResultExecution timeMemory
890192AzzmiRabbit Carrot (LMIO19_triusis)C++14
0 / 100
0 ms500 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int n, m;
int a[200'001];

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

    cin >> n >> m;
    for (int i = 1; i <= n; ++i) {
        cin >> a[i];
        a[i] -= i * m;
    }
    vector<int> dp;
    for (int i = 0; i < n+1; ++i) {
        auto pos = lower_bound(dp.begin(), dp.end(), a[i]) - dp.begin();
        if (pos == dp.size()) {
            dp.push_back(a[i]);
        } else {
            dp[pos] = a[i];
        }
    }
    // for (int i = 0; i < n+1; ++i) {
    //     cout << a[i] << ' ';
    // }
    // cout << endl;
    if (a[n] > 0) {
        cout << n << '\n';
    } else {
        cout << (int)dp.size() - 1 << '\n';
    }
}

Compilation message (stderr)

triusis.cpp: In function 'int main()':
triusis.cpp:20:17: warning: comparison of integer expressions of different signedness: 'long int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |         if (pos == dp.size()) {
      |             ~~~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...