QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#541862 | #9227. Henry the Plumber | dsbdsb | WA | 1ms | 3852kb | C++14 | 1.4kb | 2024-08-31 21:12:45 | 2024-08-31 21:12:46 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
double a,b,c,d,x,y,z,u,v,w,eps=1e-9;
struct point{
double x,y;
inline point operator + (const point &rhs)const{
return (point){x+rhs.x,y+rhs.y};
}
inline point operator - (const point &rhs)const{
return (point){x-rhs.x,y-rhs.y};
}
inline point operator * (const double &rhs)const{
return (point){x*rhs,y*rhs};
}
inline void prt(){
printf("%.2lf %.2lf\n",x,y);
}
};
inline double cross(const point &lhs,const point &rhs){
return lhs.x*rhs.y-lhs.y*rhs.x;
}
inline point inter(point p1,point p2,point p3,point p4){
double ls=cross(p2-p1,p3-p1),rs=cross(p4-p1,p2-p1);
// p1.prt(),p2.prt(),p3.prt(),p4.prt();
// std::cout<<ls<<' '<<rs<<'\n';
return p3+(p4-p3)*(ls/(ls+rs));
}
int main(){
// std::cout<<inter({0,0},{1,9},{0,9},{1,0}).y<<'\n';
int T;
cin>>T;
while(T--){
cin>>x>>y>>z>>a>>b>>u>>v>>w>>c>>d;
if((fabs(a*d+b*c)<=eps||fabs(a*d-b*c)<=eps)){
if(fabs(a*(x-u)+b*(y-v))<=eps) cout<<"2\n";
else{
// cout<<"4\n";
if((fabs(a*(y-v)+b*(x-u))<=eps||fabs(a*(y-v)-b*(x-u))<=eps)&&z==w) cout<<"4\n";
else cout<<"3\n";
}
}
else{
point e=inter({x,y},{x+b,y-a},{u,v},{u+d,v-c});
// printf("%.2f %.2f !!\n",e.x,e.y);
double fz=(x-e.x)*(x-e.x)+(y-e.y)*(y-e.y)+(u-e.x)*(u-e.x)+(v-e.y)*(v-e.y);
if(fz>eps+(x-u)*(x-u)+(y-v)*(y-v)+(z-w)*(z-w)/2) cout<<"4\n";
else cout<<"3\n";
}
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3852kb
input:
2 -1 -1 3 1 1 2 2 3 2 2 5 5 1 3 0 7 6 -2 1 -2
output:
4 3
result:
ok 2 number(s): "4 3"
Test #2:
score: -100
Wrong Answer
time: 1ms
memory: 3660kb
input:
100 -13 -5 -7 -19 19 -19 -13 0 -7 15 -20 20 19 -17 18 20 -20 -1 18 -19 -18 15 -14 -19 18 19 -20 6 20 -19 -12 9 1 7 -16 -13 -14 -8 8 -13 -19 16 9 20 -19 19 -18 -11 19 -18 19 20 -8 12 20 -11 -9 18 -19 -18 8 11 -13 12 -18 18 13 8 4 -18 -16 20 17 -19 18 20 -18 -3 20 -19 -17 -20 -5 -18 -19 19 16 15 19 20...
output:
4 4 4 4 4 4 3 4 4 4 3 4 4 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 3 4 3 4 4 4 3 4 4 4 4 4 4 4 3 4 3 4 4 4 4 4 4 4 4 4 4 4 4 3 4 4 4 4 4 4 4 3 3 4 3 4 4 4 4 4 4 4 4 4
result:
wrong answer 16th numbers differ - expected: '4', found: '3'