Submission #35189253
Source Code Expand
#include <bits/stdc++.h>
#include <atcoder/modint>
using mint = atcoder::modint998244353;
using namespace std;
typedef long long ll;
#define rep(i,a,n) for (ll i=a;i<(ll)n;i++)
#define per(i,a,n) for (ll i=n;i-->(ll)a;)
#define pb push_back
ll read(){ll r;scanf("%lld",&r);return r;}
int n;
vector<pair<ll,ll> > p;
ll cross(const pair<ll,ll>& a0,const pair<ll,ll>&a1){ // = area * 2
return a0.first*a1.second - a1.first * a0.second;
}
// p0 - p1
pair<ll,ll> sub(const pair<ll,ll> &p0,const pair<ll,ll>&p1){
return {p0.first - p1.first,p0.second-p1.second};
}
ll S(const pair<ll,ll> &p0,const pair<ll,ll>&p1,const pair<ll,ll>&p2){
return cross(sub(p1,p0),sub(p2,p0));
}
int main(){
int n = read(); // N 1e5
rep(i,0,n) p.push_back({read(),read()});
auto o = p[0];
sort(p.begin()+1,p.end(),[=](auto p0,auto p1){
return cross(sub(p0,o),sub(p1,o)) > 0;
});
ll s = 0;
rep(i,1,n-1) s += S(o,p[i],p[i+1]);
int i = 0;
int j = i+1;
ll ans = 0x3f3f3f3f3f3f3f3f;
ll area = 0;
do{
while(area*4 < s && (j+1)%n != i){
area += S(p[i],p[j],p[(j+1)%n]);
ans = min(ans, abs(s-4*area));
(j+=1)%=n;
}
area -= S(p[i],p[(i+1)%n],p[j]);
ans = min(ans, abs(s-4*area));
(i+=1)%=n;
}while(i!=0);
printf("%lld\n",ans);
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - One Fourth |
| User | cromarmot |
| Language | C++ (GCC 9.2.1) |
| Score | 500 |
| Code Size | 1298 Byte |
| Status | AC |
| Exec Time | 36 ms |
| Memory | 5404 KiB |
Compile Error
./Main.cpp: In function ‘ll read()’:
./Main.cpp:11:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
11 | ll read(){ll r;scanf("%lld",&r);return r;}
| ~~~~~^~~~~~~~~~~
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt |
| All | sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt, test_56.txt, test_57.txt, test_58.txt, test_59.txt, test_60.txt, test_61.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 7 ms | 3592 KiB |
| sample_02.txt | AC | 2 ms | 3820 KiB |
| sample_03.txt | AC | 2 ms | 3704 KiB |
| test_01.txt | AC | 2 ms | 3720 KiB |
| test_02.txt | AC | 2 ms | 3832 KiB |
| test_03.txt | AC | 2 ms | 3712 KiB |
| test_04.txt | AC | 2 ms | 3672 KiB |
| test_05.txt | AC | 4 ms | 3744 KiB |
| test_06.txt | AC | 2 ms | 3712 KiB |
| test_07.txt | AC | 2 ms | 3568 KiB |
| test_08.txt | AC | 2 ms | 3816 KiB |
| test_09.txt | AC | 2 ms | 3672 KiB |
| test_10.txt | AC | 2 ms | 3756 KiB |
| test_11.txt | AC | 2 ms | 3708 KiB |
| test_12.txt | AC | 2 ms | 3596 KiB |
| test_13.txt | AC | 2 ms | 3712 KiB |
| test_14.txt | AC | 3 ms | 3724 KiB |
| test_15.txt | AC | 2 ms | 3724 KiB |
| test_16.txt | AC | 2 ms | 3680 KiB |
| test_17.txt | AC | 3 ms | 3620 KiB |
| test_18.txt | AC | 2 ms | 3616 KiB |
| test_19.txt | AC | 1 ms | 3708 KiB |
| test_20.txt | AC | 2 ms | 3596 KiB |
| test_21.txt | AC | 2 ms | 3828 KiB |
| test_22.txt | AC | 2 ms | 3636 KiB |
| test_23.txt | AC | 2 ms | 3604 KiB |
| test_24.txt | AC | 2 ms | 3720 KiB |
| test_25.txt | AC | 3 ms | 3816 KiB |
| test_26.txt | AC | 3 ms | 3656 KiB |
| test_27.txt | AC | 2 ms | 3676 KiB |
| test_28.txt | AC | 2 ms | 3716 KiB |
| test_29.txt | AC | 1 ms | 3680 KiB |
| test_30.txt | AC | 2 ms | 3604 KiB |
| test_31.txt | AC | 2 ms | 3636 KiB |
| test_32.txt | AC | 2 ms | 3712 KiB |
| test_33.txt | AC | 2 ms | 3768 KiB |
| test_34.txt | AC | 3 ms | 3684 KiB |
| test_35.txt | AC | 3 ms | 3684 KiB |
| test_36.txt | AC | 2 ms | 3572 KiB |
| test_37.txt | AC | 2 ms | 3808 KiB |
| test_38.txt | AC | 3 ms | 3820 KiB |
| test_39.txt | AC | 2 ms | 3596 KiB |
| test_40.txt | AC | 5 ms | 3820 KiB |
| test_41.txt | AC | 2 ms | 3812 KiB |
| test_42.txt | AC | 2 ms | 3744 KiB |
| test_43.txt | AC | 2 ms | 3704 KiB |
| test_44.txt | AC | 2 ms | 3624 KiB |
| test_45.txt | AC | 2 ms | 3620 KiB |
| test_46.txt | AC | 7 ms | 3744 KiB |
| test_47.txt | AC | 13 ms | 3764 KiB |
| test_48.txt | AC | 3 ms | 3876 KiB |
| test_49.txt | AC | 17 ms | 4352 KiB |
| test_50.txt | AC | 26 ms | 4188 KiB |
| test_51.txt | AC | 6 ms | 3864 KiB |
| test_52.txt | AC | 23 ms | 4156 KiB |
| test_53.txt | AC | 34 ms | 5404 KiB |
| test_54.txt | AC | 9 ms | 3868 KiB |
| test_55.txt | AC | 33 ms | 5204 KiB |
| test_56.txt | AC | 12 ms | 3880 KiB |
| test_57.txt | AC | 36 ms | 5196 KiB |
| test_58.txt | AC | 27 ms | 4236 KiB |
| test_59.txt | AC | 5 ms | 3700 KiB |
| test_60.txt | AC | 15 ms | 3776 KiB |
| test_61.txt | AC | 22 ms | 4152 KiB |