Submission #880782

#TimeUsernameProblemLanguageResultExecution timeMemory
880782votranngocvyRabbit Carrot (LMIO19_triusis)C++14
63 / 100
16 ms3820 KiB
#include <bits/stdc++.h>
using namespace std;

#define pii pair<int,int>
#define fi first
#define se second
#define mp make_pair
const int N = 1e5 + 5;
vector<int>a;
int bit[N];

void compress() {
    vector<pii>vec;
    for (int i = 0; i < a.size(); i++) vec.push_back(mp(a[i],i));
    sort(vec.begin(),vec.end());
    a[vec[0].se] = 1;
    for (int i = 1; i < vec.size(); i++)
        if (vec[i].fi == vec[i - 1].fi) a[vec[i].se] = a[vec[i - 1].se];
        else a[vec[i].se] = i + 1;
}

void update(int i,int x) {
    for (; i < N; i += i & (-i)) bit[i] = max(bit[i],x);
}

int get(int i) {
    int ans = 0;
    for (; i > 0; i -= i & (-i)) ans = max(ans,bit[i]);
    return ans;
}

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int n,m;
    cin >> n >> m;
    for (int i = 1; i <= n; i++) {
        int x;
        cin >> x;
        if (m * i - x >= 0) a.push_back(m * i - x);
    }
    int ans = 0;
    if (a.size()) {
        compress();
        for (int i = 0; i < a.size(); i++) {
            int tmp = get(a[i]) + 1;
            ans = max(ans,tmp);
            update(a[i],tmp);
        }
    }
    cout << n - ans << "\n";
}

Compilation message (stderr)

triusis.cpp: In function 'void compress()':
triusis.cpp:14:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |     for (int i = 0; i < a.size(); i++) vec.push_back(mp(a[i],i));
      |                     ~~^~~~~~~~~~
triusis.cpp:17:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for (int i = 1; i < vec.size(); i++)
      |                     ~~^~~~~~~~~~~~
triusis.cpp: In function 'int main()':
triusis.cpp:45:27: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   45 |         for (int i = 0; i < a.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...