# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
158705 | vanic | SIR (COI15_sir) | C++14 | 230 ms | 10928 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
typedef long long ll;
const int maxn=3e5+5;
pair < ll, ll > l[maxn];
pair < ll, ll > svi[maxn];
vector < pair < ll, ll > > bitne;
vector < pair < ll, ll > > ost;
ll hull(pair < ll, ll > a, pair < ll, ll > b, pair < ll, ll > c){
return a.first*(b.second-c.second)+b.first*(c.second-a.second)+c.first*(a.second-b.second);
}
int main(){
int n;
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%lld%lld", &l[i].first, &l[i].second);
}
int m;
scanf("%d", &m);
for(int i=0; i<m; i++){
scanf("%lld%lld", &svi[i].first, &svi[i].second);
}
sort(svi, svi+m);
for(int i=0; i<m; i++){
while(bitne.size()>1 && hull(bitne[bitne.size()-2], bitne.back(), svi[i])<=0){
bitne.pop_back();
}
bitne.push_back(svi[i]);
}
for(int i=m-1; i>-1; i--){
while(ost.size()>1 && hull(ost[ost.size()-2], ost.back(), svi[i])<=0){
ost.pop_back();
}
ost.push_back(svi[i]);
}
for(int i=ost.size()-2; i>0; i--){
bitne.push_back(ost[i]);
}
int sz=bitne.size();
/* printf("%d\n", sz);
for(int i=0; i<sz; i++){
printf("%lld %lld\n", bitne[i].first, bitne[i].second);
}*/
int pos1=0, pos2=0;
ll mini=1e10;
for(int i=0; i<sz; i++){
if(mini>abs(l[0].first-bitne[i].first)+abs(l[0].second-bitne[i].second)){
mini=abs(l[0].first-bitne[i].first)+abs(l[0].second-bitne[i].second);
pos1=i;
}
}
ll sum=0;
ll maksi=0;
int pos3;
for(int i=0; i<n; i++){
while(hull(l[i], bitne[(pos1+1)%sz], bitne[pos1])>0){
pos1=(pos1+1)%sz;
}
while(hull(l[i], l[(pos2+1)%n], bitne[pos1])>0){
sum+=hull(l[i], l[pos2], l[(pos2+1)%n]);
pos2=(pos2+1)%n;
}
pos3=(i+1)%n;
maksi=max(maksi, sum);
sum-=hull(l[i], l[pos3], l[pos2]);
}
printf("%lld", maksi);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |