QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#751889 | #9434. Italian Cuisine | 111111qqqqqq | WA | 6ms | 3664kb | C++14 | 1.4kb | 2024-11-15 21:12:10 | 2024-11-15 21:12:11 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define pb push_back
#define db double
#define lowbit(x) x&(-x)
#define cerr(x) cout<<#x<<"="<<x<<endl
#define fi first
#define se second
#define N 100010
const db eps=1e-7;
int n;
ll rx,ry,r;
struct node{
ll x,y;
node(){}
node(ll _x,ll _y):x(_x),y(_y){}
node operator+(const node&t) const {return {x+t.x,y+t.y};}
node operator-(const node&t) const {return {x-t.x,y-t.y};}
}p[N],o;
int js(int x) {
return x>n?1:x;
}
ll dis(node a,node b) {
ll dx=a.x-b.x,dy=a.y-b.y;
return dx*dx+dy*dy;
}
ll cross(node a,node b) {
return a.x*b.y-b.x*a.y;
}
ll pow_(ll x) {return x*x;}
void solve() {
cin>>n;
cin>>rx>>ry>>r;
o=node(rx,ry);
for(int i=1;i<=n;i++) {
cin>>p[i].x>>p[i].y;
}
ll ans=0,mx=0;
for(int i=1,j=i+1;i<=n;i++) {
j=max(j,js(i+1));
int id=js(j+1);
while(cross(p[id]-p[i],o-p[i])>=-eps && pow_(cross(p[id]-p[i],o-p[i]))>=pow_(r)*dis(p[id],p[i]) && id!=i) {
ll s=cross(p[j]-p[i],p[id]-p[i]);
ans+=s,j=id,id=js(j+1);
mx=max(mx,ans);
}
int tmp=js(i+1);
ans-=cross(p[tmp]-p[i],p[j]-p[i]);
}
cout<<mx<<endl;
}
int main() {
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int T;
cin>>T;
while(T--)
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3656kb
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: 0
Accepted
time: 0ms
memory: 3664kb
input:
1 6 0 0 499999993 197878055 -535013568 696616963 -535013568 696616963 40162440 696616963 499999993 -499999993 499999993 -499999993 -535013568
output:
0
result:
ok 1 number(s): "0"
Test #3:
score: -100
Wrong Answer
time: 6ms
memory: 3644kb
input:
6666 19 -142 -128 26 -172 -74 -188 -86 -199 -157 -200 -172 -199 -186 -195 -200 -175 -197 -161 -188 -144 -177 -127 -162 -107 -144 -90 -126 -87 -116 -86 -104 -89 -97 -108 -86 -125 -80 -142 -74 -162 -72 16 -161 -161 17 -165 -190 -157 -196 -154 -197 -144 -200 -132 -200 -128 -191 -120 -172 -123 -163 -138...
output:
14676 3086 3649 668 4978 12249 5974 27821 15618 1034 3636 7753 9147 3421 4996 5838 6592 10402 5438 1489 1164 6104 7376 3361 10703 57088 1692 24445 687 1512 18564 10662 4209 25848 23523 26063 1651 27217 39215 30682 24912 7703 2303 2728 2460 2349 3385 6723 22233 1180 4334 1518 948 14300 1450 3585 3180...
result:
wrong answer 1st numbers differ - expected: '5093', found: '14676'