Submission #797264

#TimeUsernameProblemLanguageResultExecution timeMemory
797264andecaandeciRabbit Carrot (LMIO19_triusis)C++17
100 / 100
25 ms3048 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...