Submission #1237832

#TimeUsernameProblemLanguageResultExecution timeMemory
1237832warlockRabbit Carrot (LMIO19_triusis)C++17
100 / 100
17 ms5052 KiB
#include<bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; using namespace std; #define ll long long #define int long long int #define pii pair<int,int> #define vi vector<int> #define vvi vector<vector<int>> #define all(x) begin(x),end(x) #define rev(x) rbegin(x),rend(x) #define min_priority_queue(x) priority_queue<x, vector<x>,greater<x>> const int MOD = 1000000007; const int INF = 1e18; typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; void arrin(vi&x,int n){ for(int i=0;i<n;i++){cin >> x[i];}} void arrout(vi&x){ for(int i=0;i<x.size();i++){cout<< x[i]<<" ";}cout<< endl;} void pr_bool(bool i){ cout << (i ? "YES" : "NO") << endl;} int gcd(int a,int b){ if(b==0) return a; return gcd(b, a%b);} int lcm(int a,int b){ return a/gcd(a,b)*b;} int solve(vi&tmp){ vi dp; for(int i = 0;i < tmp.size();i++){ int ind = upper_bound(all(dp),tmp[i]) - begin(dp); if(ind == dp.size()) dp.push_back(tmp[i]); else{ dp[ind] = tmp[i]; } } return dp.size(); } int32_t main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N,M; cin >> N >> M; vi tmp; for(int i = 0;i < N;i++){ int t; cin >> t; if((i+1)*M >= t) tmp.push_back((i+1)*M - t); } cout << N - solve(tmp) << endl; } // 02:17:58
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...