# | 제출 시각UTC-0 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
561990 | abcvuitunggio | Building Bridges (CEOI17_building) | C++17 | 40 ms | 3620 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <iostream>
#include <algorithm>
#include <vector>
#define point pair <int, int>
#define fi first
#define se second
#define int long long
typedef long double ld;
using namespace std;
int n,m,dp[100001],h[100001],w[100001],c,last,sumw;
vector <point> v[18],ve[18];
bool cmp(point a, point b){
if (a.fi!=b.fi)
return a.fi<b.fi;
return a.se>b.se;
}
int ce(int a, int b){
return a/b+(a*b>0&&a/b*b!=a);
}
ld intersection(pair <int, int> p, pair <int, int> p2){
return ((ld)(p2.se-p.se))/(p.fi-p2.fi);
}
void add(pair <int, int> p, int idx){
if (!v[idx].empty()&&v[idx].back().fi==p.fi)
return;
while (v[idx].size()>1){
ld p12=intersection(v[idx][v[idx].size()-2],v[idx].back()),p13=intersection(v[idx][v[idx].size()-2],p);
if (p12<p13)
break;
v[idx].pop_back();
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |