This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
#define start cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0);
#define endl '\n'
#define pii pair<int,int>
#define pll pair<long long, long long>
#define fflush(stdout); cout.flush();
struct point{
int x, y;
};
int crossproduct(point a, point b, point c){
//point a biasanya titik (0, 0);
int area=(b.x-a.x) * (c.y-a.y) - (b.y-a.y) * (c.x-a.x);
if(area<0) return -1; // clockwise
else if(area>0) return 1; // counter clockwise
return 0; // colinear
}
int orientation(point p1, point p2, point p3){
int val=(p2.y-p1.y)*(p3.x-p2.x) - (p3.y-p2.y)*(p2.x-p1.x);
if(val==0) return 0; // colinear
else if(val>0) return 1; // clockwise
else return 2; // counter clockwise
}
bool validcolinear(int a, int b, int c, int d){
if(a>b) swap(a, b);
if(c>d) swap(c, d);
return max(a, c)<=min(b, d);
}
bool intersect(point a, point b, point c, point d){
int o1=orientation(a, b, c);
int o2=orientation(a, b, d);
int o3=orientation(c, d, a);
int o4=orientation(c, d, b);
if(o1!=o2 && o3!=o4) return 1;
if(o1==0 && o2==0 && o3==0 && o4==0){
//all of 4 points are colinear
if(validcolinear(a.x, b.x, c.x, d.x) && validcolinear(a.y, b.y, c.y, d.y)){
return 1;
}
}
return 0;
}
/***********************************************************************************************/
/***********************************************************************************************/
int a[200005], b[200005];
int main(){
start
int n, m; cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>a[i];
b[i]=(m*i)-a[i];
}
vector<int>v;
for(int i=1;i<=n;i++){
int x=b[i];
if(x<0) continue;
int idx=upper_bound(v.begin(), v.end(), x) - v.begin();
if(idx==v.size()) v.push_back(x);
else v[idx]=x;
}
int komp=v.size();
cout<<n-komp<<endl;
}
Compilation message (stderr)
triusis.cpp: In function 'int main()':
triusis.cpp:69:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
69 | if(idx==v.size()) v.push_back(x);
| ~~~^~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |