QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#513141#9168. Square Locatorucup-team3510#AC ✓0ms4304kbC++203.2kb2024-08-10 17:03:042024-08-10 17:03:08

Judging History

This is the latest submission verdict.

  • [2024-08-10 17:03:08]
  • Judged
  • Verdict: AC
  • Time: 0ms
  • Memory: 4304kb
  • [2024-08-10 17:03:04]
  • Submitted

answer

#include <bits/stdc++.h>
#define dubble long double
#define ll long long
using namespace std;
const dubble eps=1e-9;
int sgn(double x) {
	if(fabs(x)<eps)return 0;
	return x<0?-1:1;
}

struct Point { //¶¨ÒåµãºÍ»ù±¾ÔËËã
	double x,y;
	double ang;
	Point() {}
	Point(double x,double y):x(x),y(y) {}
	Point operator + (Point B) {
		return Point(x+B.x,y+B.y);
	}
	Point operator - (Point B) {
		return Point(x-B.x,y-B.y);
	}
	Point operator * (double k) {
		return Point(x*k,y*k);   //³¤¶ÈÔö´ók±¶
	}
	Point operator / (double k) {
		return Point(x/k,y/k);   //³¤¶ÈËõСk±¶
	}
	bool operator == (Point B) {
		return sgn(x-B.x)==0 && sgn(y-B.y)==0;
	}
	double operator ^(Point B) {
		return x*B.y-y*B.x;
	}
	double distance(Point p) {
		return hypot(x-p.x,y-p.y);
	}
};

typedef Point Vector;
double Cross(Vector A,Vector B) {
	return A.x*B.y - A.y*B.x;   //²æ»ý
}

struct Line {
	Point p1,p2;//ÏßÉϵÄÁ½¸öµã
	Line() {}
	Line(Point p1,Point p2):p1(p1),p2(p2) {}
};

struct Circle {
	Point c;//Ô²ÐÄ
	double r;//°ë¾¶
	Circle() {}
	Circle(Point c,double r):c(c),r(r) {}
	Circle(double x,double y,double _r) {
		c=Point(x,y);
		r = _r;
	}
	Point point(double ang) { //Ô²ÉÏÓëÔ²Ðļ«×ø±êΪangµÄµã
		return Point(c.x+cos(ang)*r,c.y+sin(ang)*r);
	}
};

double Distance(Point A, Point B) {
	return hypot(A.x-B.x,A.y-B.y);
}

//ÇóÏòÁ¿vµÄ¼«½Ç
double angle(Vector v) {
	return atan2(v.y,v.x);
}

Point cw90(Point x){return Point(x.y,-x.x);}
int getcirclecirclePoint(Circle c1,Circle c2,Point &p1,Point &p2) {
	double d = Distance(c1.c,c2.c);
	if(sgn(d)== 0) {
		if(sgn(c1.r-c2.r)==0)return -1;  //ÖغÏ
		return 0;   //ûÓн»µã
	}
	if(sgn(c1.r+c2.r-d)<0)return 0;  //ÏàÀë
	if(sgn(fabs(c1.r-c2.r)-d)>0)return 0;   //ÄÚº¬
	double a =angle(c2.c-c1.c);  //c1->c2µÄ¼«½Ç
	double da=acos((c1.r*c1.r+d*d-c2.r*c2.r)/(2*c1.r*d));
	p1=c1.point(a-da),p2=c1.point(a+da);
	if(p1==p2)return 1;
	else return 2;
}
dubble AO,BO,CO,DO;
dubble err(dubble x){return abs(round(x)-x);}
void gen(Point cen,Point &A,Point &B,Point &C,Point &D)
{
	A=Point(0,AO);
	C=cen*2-A;
	B=cen+cw90(A-cen);
	D=cen*2-B;
}
Point A1,B1,C1,D1,A2,B2,C2,D2;
ll cr(dubble x){return round(x);}
int main()
{
	scanf("%Lf%Lf%Lf%Lf",&AO,&BO,&CO,&DO);
	AO=sqrtl(AO);BO=sqrtl(BO);CO=sqrtl(CO);DO=sqrtl(DO);
	dubble Ox=-AO,Oy=0,r=BO*sqrtl(2);
//	printf("(%Lf,%Lf) %Lf\n",Ox,Oy,r);
	Point tt1,tt2;
	int asd=getcirclecirclePoint(Circle(0,0,CO),Circle(Ox,Oy,r),tt1,tt2);
	Point p1=(Point(0,AO)+tt1)/2,p2=(Point(0,AO)+tt2)/2;
//	printf("tt1:(%lf,%lf) tt2:(%lf,%lf)\n",tt1.x,tt1.y,tt2.x,tt2.y);
	gen(p1,A1,B1,C1,D1);
	gen(p2,A2,B2,C2,D2);
//	printf("A1:(%lf,%lf) B1:(%lf,%lf) C1:(%lf,%lf) D1:(%lf,%lf)\n",A1.x,A1.y,B1.x,B1.y,C1.x,C1.y,D1.x,D1.y);
	if(err(A1.x)+err(B1.x)+err(C1.x)+err(D1.x)+err(A1.y)+err(B1.y)+err(C1.y)+err(D1.y)<
	err(A2.x)+err(B2.x)+err(C2.x)+err(D2.x)+err(A2.y)+err(B2.y)+err(C2.y)+err(D2.y))
	{
		printf("%lld %lld %lld %lld %lld %lld %lld\n",cr(A1.y),cr(B1.x),cr(B1.y),cr(C1.x),cr(C1.y),cr(D1.x),cr(D1.y));
	}
	else
	{
		printf("%lld %lld %lld %lld %lld %lld %lld\n",cr(A2.y),cr(B2.x),cr(B2.y),cr(C2.x),cr(C2.y),cr(D2.x),cr(D2.y));
	}
	
}

这程序好像有点Bug,我给组数据试试?

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 0ms
memory: 4220kb

input:

36 5 10 41

output:

6 1 2 -3 1 -4 5

result:

ok Answer is correct

Test #2:

score: 0
Accepted
time: 0ms
memory: 4236kb

input:

1 1 1 1

output:

1 1 0 0 -1 -1 0

result:

ok Answer is correct

Test #3:

score: 0
Accepted
time: 0ms
memory: 4172kb

input:

1000000000000000000 1000000000000000000 1000000000000000000 1000000000000000000

output:

1000000000 0 1000000000 0 1000000000 0 1000000000

result:

ok Answer is correct

Test #4:

score: 0
Accepted
time: 0ms
memory: 4248kb

input:

4 10 8 2

output:

2 1 3 2 2 1 1

result:

ok Answer is correct

Test #5:

score: 0
Accepted
time: 0ms
memory: 4216kb

input:

4 50 104 58

output:

2 5 -5 -2 -10 -7 -3

result:

ok Answer is correct

Test #6:

score: 0
Accepted
time: 0ms
memory: 4304kb

input:

9 16 65 58

output:

3 0 -4 -7 -4 -7 3

result:

ok Answer is correct

Test #7:

score: 0
Accepted
time: 0ms
memory: 4304kb

input:

25 13 101 113

output:

5 -3 -2 -10 1 -7 8

result:

ok Answer is correct

Test #8:

score: 0
Accepted
time: 0ms
memory: 4232kb

input:

16 25 58 49

output:

4 4 -3 -3 -7 -7 0

result:

ok Answer is correct

Test #9:

score: 0
Accepted
time: 0ms
memory: 4144kb

input:

374544 2235250 4453364 2592658

output:

612 1205 -885 -292 -2090 -1497 -593

result:

ok Answer is correct

Test #10:

score: 0
Accepted
time: 0ms
memory: 4144kb

input:

126736 551200 1838608 1414144

output:

356 -124 -732 -1212 -608 -1088 480

result:

ok Answer is correct

Test #11:

score: 0
Accepted
time: 0ms
memory: 4240kb

input:

6007401 6936277 5051405 4122529

output:

2451 426 2599 574 2173 148 2025

result:

ok Answer is correct

Test #12:

score: 0
Accepted
time: 0ms
memory: 4240kb

input:

2209 2536706 4875777 2341280

output:

47 1435 691 2079 -744 644 -1388

result:

ok Answer is correct

Test #13:

score: 0
Accepted
time: 0ms
memory: 4244kb

input:

986962771600 2474826790757 5529645464114 4041781444957

output:

993460 -1005254 1210079 -788635 2215333 216619 1998714

result:

ok Answer is correct

Test #14:

score: 0
Accepted
time: 0ms
memory: 4236kb

input:

722790729241 782340801290 3904082690373 3844532618324

output:

850171 -68947 -881809 -1800927 -812862 -1731980 919118

result:

ok Answer is correct

Test #15:

score: 0
Accepted
time: 0ms
memory: 4236kb

input:

3870332944 287487526720 654504136912 370886943136

output:

62212 -530544 -77528 -670284 453016 -139740 592756

result:

ok Answer is correct

Test #16:

score: 0
Accepted
time: 0ms
memory: 4236kb

input:

42230661001 2038831296200 3308981375377 1312380740178

output:

205501 1201498 771514 1767511 -429984 566013 -995997

result:

ok Answer is correct

Test #17:

score: 0
Accepted
time: 0ms
memory: 4152kb

input:

132551656347532249 102473514386838101 439829344402853445 469907486363547593

output:

364076443 -285439930 144905351 -504611022 430345281 -219171092 649516373

result:

ok Answer is correct

Test #18:

score: 0
Accepted
time: 0ms
memory: 4204kb

input:

55636209407170681 109515374676898429 329424831462677605 275545666192949857

output:

235873291 -284729573 168654810 -351948054 453384383 -67218481 520602864

result:

ok Answer is correct

Test #19:

score: 0
Accepted
time: 0ms
memory: 4260kb

input:

466589422796014144 325095618166198298 43553814262839476 185047618892655322

output:

683073512 301902073 483684563 102513124 181782490 -199388949 381171439

result:

ok Answer is correct

Test #20:

score: 0
Accepted
time: 0ms
memory: 4304kb

input:

6909562468993284 229067899424048957 357610810027741258 135452473072685585

output:

83123778 222468866 423763499 563108587 201294633 340639721 -139345088

result:

ok Answer is correct

Test #21:

score: 0
Accepted
time: 0ms
memory: 4240kb

input:

5000019216542596 408275955794662066 885792080806957480 482516144228838010

output:

70710814 -617703405 163457821 -524956398 781161226 92747007 688414219

result:

ok Answer is correct

Test #22:

score: 0
Accepted
time: 0ms
memory: 4240kb

input:

1736111972222329 40264917317940640 105455671025820505 66926865680102194

output:

41666677 -111335636 -166940988 -319943301 -55605352 -208607665 153002313

result:

ok Answer is correct

Test #23:

score: 0
Accepted
time: 0ms
memory: 4144kb

input:

255964325056888900 56517928013623933 645740568455742866 845186965499007833

output:

505929170 -234517643 -38979522 -779426335 195538121 -544908692 740446813

result:

ok Answer is correct

Test #24:

score: 0
Accepted
time: 0ms
memory: 4148kb

input:

477032252615296225 108870012374411737 333393233802837749 701555474043722237

output:

690675215 324002404 -62389539 -429062350 -386391943 -753064754 366672811

result:

ok Answer is correct

Test #25:

score: 0
Accepted
time: 0ms
memory: 4144kb

input:

1299556716903225 355747388532580098 692024059544933421 337576227729256548

output:

36049365 -252350757 540431757 252031635 792782514 504382392 288400122

result:

ok Answer is correct

Test #26:

score: 0
Accepted
time: 0ms
memory: 4164kb

input:

65258206810145881 521153173952727205 930630862422604093 474735895280022769

output:

255456859 -307048086 653356447 90851502 960404533 397899588 562504945

result:

ok Answer is correct

Test #27:

score: 0
Accepted
time: 0ms
memory: 4268kb

input:

8131402216306944 151743259973886485 212869615963839370 69257758206259829

output:

90174288 243418711 304122658 457367081 60703947 213948370 -153244423

result:

ok Answer is correct

Extra Test:

score: 0
Extra Test Passed