# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1166779 | Warinchai | Building Bridges (CEOI17_building) | C++20 | 43 ms | 9028 KiB |
#include<bits/stdc++.h>
#define int long long
using namespace std;
int h[100005];
int w[100005];
int sum[100005];
int querymode=0;
int inf=1e9;
struct line{
mutable int m,c,p;
line(int _m=0,int _c=0,int _p=0){
m=_m,c=_c,p=_p;
}
friend bool operator<(line a,line b){
return querymode?a.p<b.p:a.m>b.m;
}
};
struct convexhull:multiset<line>{
int div(int a,int b){
if(a%b==0||(a^b)>=0)return a/b;
return a/b-1;
}
bool isect(iterator a,iterator b){
if(b==end())return a->p=inf,false;
if(a->m==b->m)a->p=(a->c<b->c?inf:-inf);
else a->p=div(b->c-a->c,a->m-b->m);
return a->p>=b->p;
}
void add(line a){
auto x=insert(a),y=next(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... |