QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#718490 | #9434. Italian Cuisine | Nana7 | WA | 1ms | 5396kb | C++14 | 1.6kb | 2024-11-06 20:39:52 | 2024-11-06 20:39:52 |
Judging History
answer
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define I inline
#define int long long
using namespace std;
const double eps = 1e-10;
const int N = 100010;
struct point {
int x,y;
point(int xx=0,int yy=0) {
x=xx; y=yy;
}
}a[N],pc;
typedef point Vector;
int n;
double xc,yc,R;
I point operator+(point p1,point p2) {return point(p1.x+p2.x,p1.y+p2.y);};
I point operator-(point p1,point p2) {return point(p1.x-p2.x,p1.y-p2.y);};
I point operator*(int x,point p1) {return point(p1.x*x,p1.y*x);};
I int sgn(double x) {
if(x<-eps) return -1;
if(x>eps) return 1;
return 0;
}
I int Cro(point A,point B) {
return A.x*B.y-A.y*B.x;
}
I int area(point A,point B,point C) {
return Cro(A-B,A-C);
}
I int Len(point A) {
return A.x*A.x+A.y*A.y;
}
I double Abs(double x) {
return x<0?-x:x;
}
I double dis_PL(point A,point B,point c) {
return Abs(1.0*Cro(A-c,B-c)/sqrt(Len(A-B)));
}
I void solve() {
cin>>n; cin>>xc>>yc>>R; pc=point(xc,yc);
for(int i=1;i<=n;++i) cin>>a[i].x>>a[i].y;
reverse(a+1,a+1+n);
int r=2,ans=0,sum=0;
for(int i=1;i<=n;++i) {
if(i==r) r=r%n+1;
while(sgn(dis_PL(a[i],a[r%n+1],pc)-R)>=0&&sgn(Cro(pc-a[i],a[r%n+1]-a[i]))==sgn(Cro(pc-a[i],a[r]-a[i])))sum+=area(a[i],a[r%n+1],a[r]),r=r%n+1;
ans=max(ans,sum);
if(i!=r&&i!=n) {
//cout<<"red"<<area(a[i],a[r],a[i+1])<<endl;
sum-=area(a[i],a[r],a[i+1]);
}
}
cout<<ans<<endl;
}
signed main()
{
//cout<<area(point(0,0),point(1,1),point(1,0))<<endl;
int T; cin>>T;
while(T--) {
solve();
}
}
/*
1
4
3 3 1
3 0
6 3
3 6
0 3
*/
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5396kb
input:
3 5 1 1 1 0 0 1 0 5 0 3 3 0 5 6 2 4 1 2 0 4 0 6 3 4 6 2 6 0 3 4 3 3 1 3 0 6 3 3 6 0 3
output:
5 24 0
result:
ok 3 number(s): "5 24 0"
Test #2:
score: -100
Wrong Answer
time: 1ms
memory: 5320kb
input:
1 6 0 0 499999993 197878055 -535013568 696616963 -535013568 696616963 40162440 696616963 499999993 -499999993 499999993 -499999993 -535013568
output:
286862654137719264
result:
wrong answer 1st numbers differ - expected: '0', found: '286862654137719264'