QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#747824 | #8779. Square of Triangles | ydzr00000 | WA | 30ms | 3968kb | C++17 | 6.4kb | 2024-11-14 18:23:15 | 2024-11-14 18:23:15 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
using Ld=long double;
const Ld eps=1e-6,sr2=sqrtl(2.00);
int a[5][4],b[13];
Ld c[13];
int P[5],Q[5][4];
inline bool Equals(const Ld &a,const Ld &b){return fabs(a-b)<=eps;}
inline bool Greater(const Ld &a,const Ld &b){return a-b>eps;}
inline bool Less(const Ld &a,const Ld &b){return a-b<(-eps);}
inline bool RtCheckD(const Ld &a,const Ld &b,const Ld &c){return Equals(a*a+b*b,c*c);}
inline bool RtCheckI(const int &a,const int &b,const int &c){return a+b==c;}
inline bool check(const Ld &S)
{
if(b[1]==b[2]&&b[1]+b[2]==b[3])
{
if(b[1]==b[4])
{
if(b[6]==b[7]&&b[9]==b[10]&&b[2]==b[12]&&Equals(c[5]+c[8]+c[11],c[3])&&!Less(c[6],c[3]*0.5)&&!Less(c[10],c[3]*0.5)&&Less(c[6],c[1])&&Less(c[10],c[2]))
return true;
if(b[6]==b[9]&&b[8]==b[11]&&Equals(c[5]+c[12],c[3])&&Equals(c[1],c[7]+c[10])&&!Less(c[6],c[3]*0.5)&&Less(c[6],c[1])&&Less(c[8],max(c[9],c[12])))
return true;
if(b[8]==b[1]&&b[9]==b[10]&&Equals(c[5]+c[12],c[3])&&Equals(c[6],c[7]+c[11])&&!Less(c[6],c[3]*0.5)&&Less(c[6],c[1])&&Less(c[9],max(c[8],c[12])))
return true;
if(b[11]==b[3]&&Equals(c[6]+c[9],c[10])&&Equals(c[8]+c[12],c[1])&&b[5]==b[7]&&Greater(c[10],c[4])&&Less(c[10],c[3])&&Less(c[9],max(c[8],c[4])))
return true;
if(b[5]==b[8]&&b[1]==b[7]&&b[11]==b[9]&&b[6]==b[10]&&b[12]==b[3]&&Less(c[5],c[4])&&Less(c[10],c[3])&&Less(c[9],c[3]))
return true;
if(b[6]==b[7]&&b[8]==b[10]&&Equals(c[5]+c[11],c[1])&&Equals(c[9]+c[12],c[3])&&Greater(c[6],c[4])&&Less(c[6],c[3])&&Less(c[8],max(c[7],c[11])))
return true;
if(b[9]==b[11]&&b[3]==b[12]&&Equals(c[6],c[10]+c[8])&&Equals(c[5]+c[7],c[1])&&Greater(c[6],c[4])&&Less(c[6],c[3])&&Less(c[9],c[12])&&Greater(c[9],c[7]))
return true;
if(b[6]==b[7]&&b[9]==b[10]&&b[12]==b[3]&&Equals(c[5]+c[8]+c[11],c[1])&&Greater(c[6],c[4])&&Greater(c[9],c[6])&&Greater(c[12],c[9]))
return true;
}
if(b[3]==b[12]&&b[6]==b[10]&&b[5]==b[9]&&Equals(c[4]+c[7],c[1])&&Equals(c[8]+c[11],c[2])&&Greater(c[6],c[1])&&Less(c[6],c[3])&&Greater(c[5],c[8])&&Less(c[5],c[6]))
return true;
}
if(b[1]==b[4]&&RtCheckI(b[1],b[2],b[3])&&RtCheckI(b[4],b[5],b[6])&&Greater(b[4],b[5])&&Greater(b[1],b[2]))
{
if(b[6]==b[7]&&b[9]==b[10]&&b[11]==b[3]&&Equals(c[2]+c[8],c[1])&&Equals(c[5]+c[12],c[1])&&Less(b[6],2*b[1])&&Less(b[3],2*b[1])&&Less(b[10],2*b[1]))
return true;
if(b[6]==b[8]&&b[3]==b[12]&&b[9]==b[10]&&Equals(b[9],b[1]*2)&&Equals(c[5]+c[7],c[1])&&Equals(c[2]+c[11],c[4])&&Less(c[3],c[10])&&Less(c[6],c[9]))
return true;
if(b[3]==b[9]&&b[6]==b[12]&&b[8]==b[11]&&Equals(c[10]+c[7],c[1])&&Equals(c[2]+c[5],c[1])&&!Less(c[8],c[1])&&Less(b[8],2*b[1]))
return true;
if(b[7]==b[10]&&b[11]==b[1]&&b[3]==b[8]&&Equals(c[9]+c[12],c[6])&&Equals(c[2]+c[5],c[1])&&Less(c[10],max(c[8],c[11])))
return true;
if(b[3]==b[11]&&b[6]==b[8]&&b[9]==b[10]&&Equals(c[5]+c[7],c[1])&&Equals(c[2]+c[12],c[1])&&Equals(b[1]*2,b[9])&&Less(c[3],c[9])&&Less(c[8],c[9]))
return true;
if(b[10]==b[3]&&b[9]==b[11]&&b[12]==b[6]&&Equals(c[5]+c[7],c[1])&&Equals(c[2]+c[8],c[4])&&Less(b[3],2*b[1])&&Less(b[9],2*b[4])&&Less(b[6],2*b[1])&&RtCheckI(b[7],b[8],b[9]))
return true;
if(b[7]==b[1]&&b[3]==b[9]&&b[6]==b[10]&&b[12]==b[8]&&Equals(c[2]+c[5]+c[11],c[1])&&Greater(c[8],c[6])&&Less(b[8],2*b[1]))
return true;
}
if(RtCheckI(b[1],b[2],b[3])&&Greater(b[1],b[2]))
{
if(b[3]==b[11]&&b[12]==b[1]&&b[9]==b[1]&&b[6]==b[7]&&Equals(c[8]+c[5],c[10])&&Equals(c[2]+c[4],c[1])&&Greater(c[10],c[9])&&Less(b[10],2*b[1])&&Less(c[7],max(c[4],c[9]))&&RtCheckI(b[9],b[4],b[10]))
return true;
if(b[3]==b[11]&&b[9]==b[10]&&b[6]==b[7]&&b[12]==b[1]&&Equals(c[2]+c[4],c[1])&&Equals(c[5]+c[8],c[1])&&Greater(c[10],c[1])&&Less(b[10],2*b[1])&&Greater(c[6],c[4])&&Less(c[6],c[9])&&RtCheckI(b[4],b[5],b[6]))
return true;
if(b[10]==b[9]&&b[11]==b[1]&&b[7]==b[1]&&b[8]==b[6]&&Equals(c[12]+c[5],c[3])&&Equals(c[2]+c[4],c[1])&&Greater(c[6],c[4])&&Less(b[6],2*b[1])&&Less(b[10],2*b[1]))
return true;
if(b[3]==b[10]&&b[4]==b[1]&&b[7]==b[1]&&b[5]==b[8]&&Equals(c[6]+c[9],c[11])&&Equals(c[2]+c[12],c[1])&&Equals(b[11],2*b[1])&&!Less(c[5],0.5*c[11])&&Less(c[5],c[4])&&Greater(c[3],c[1])&&Less(c[3],c[11]))
return true;
}
if(b[1]==b[4]&&b[11]==b[7]&&b[1]==b[11]&&b[8]==b[10]&&b[2]==b[5]&&Equals(c[3]+c[6],c[12]+c[9])&&Equals(c[3]+c[6],sr2*c[1])&&Less(c[8],max(c[7],c[11]))&&Less(c[2],max(c[1],c[4]))&&RtCheckD(c[1],c[2]+c[12],c[11]))
return true;
if(b[1]==b[4]&&b[4]==b[11]&&b[11]==b[9]&&b[3]==b[5]&&b[6]==b[12]&&b[10]==b[8]&&b[2]==b[7]&&b[3]+b[8]==b[2]+b[12])
{
if(!Less(c[3]+c[8],sr2*c[1])&&!Less(c[7]+c[12],sr2*c[1])&&Less(b[12],2*b[1])&&Less(b[8],2*b[1])&&Less(b[2],2*b[1])&&Less(b[3],2*b[1])&&Less(max(c[2]+c[12],c[3]+c[10]),c[1]+c[4])&&Equals(S,b[1]))
return true;
}
return false;
}
inline Ld Area(const Ld &a,const Ld &b,const Ld &c)
{
Ld p=(a+b+c)/2;
Ld s=sqrtl(p*(p-a)*(p-b)*(p-c));
return s;
}
inline void solve()
{
Ld sum=0;
for(int i=1;i<=4;i++)
{
for(int j=1;j<=3;j++)
scanf("%d",&a[i][j]);
Ld x=sqrtl(1.00*a[i][1]);
Ld y=sqrtl(1.00*a[i][2]);
Ld z=sqrtl(1.00*a[i][3]);
sum+=Area(x,y,z);
}
iota(P+1,P+5,1);
for(int i=1;i<=4;i++)
iota(Q[i]+1,Q[i]+4,1);
bool flg=false;
do{
auto dfs=[&](auto self,int dep)->void
{
if(dep==5)
{
int k=0;
for(int i=1;i<=4;i++)
for(int j=1;j<=3;j++)
b[++k]=a[P[i]][Q[P[i]][j]];
for(int i=1;i<=12;i++)
c[i]=sqrtl(1.00*b[i]);
flg|=check(sum);
return;
}
do{
self(self,dep+1);
}while(next_permutation(Q[dep]+1,Q[dep]+4));
};
dfs(dfs,1);
}while(next_permutation(P+1,P+5));
printf("%d\n",flg);
}
int main(){
int t;
scanf("%d",&t);
while(t--)
solve();
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 5ms
memory: 3828kb
input:
3 1 1 2 2 1 1 2 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 5 125 130 125 20 145 45 130 145 145 145 80
output:
1 0 1
result:
ok 3 lines
Test #2:
score: 0
Accepted
time: 25ms
memory: 3956kb
input:
20 1998001 7984010 9982009 1998001 7984010 1994005 7984010 9978013 9982009 9978013 1994005 7984010 9958045 7968034 9962037 7968034 1994005 9962037 9958045 1990013 7968034 1994005 1990013 7968034 7952074 9938097 1986025 7952074 9942085 1990013 7952074 9942085 9938097 1986025 7952074 1990013 7936130 9...
output:
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
result:
ok 20 lines
Test #3:
score: 0
Accepted
time: 29ms
memory: 3896kb
input:
20 1148639 3581051 1216206 9999916 7026968 270268 6013463 6013463 6756700 6013463 6013463 6756700 2608850 8630930 9445800 9862940 6448880 6939290 8631650 3682160 5184310 7504700 6652150 1917140 2359505 3170711 2299108 4027811 6760781 2960240 4679918 6106006 3178400 8153446 7975057 5222088 8849500 88...
output:
0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1
result:
ok 20 lines
Test #4:
score: 0
Accepted
time: 29ms
memory: 3820kb
input:
20 7300000 8100000 10000000 8100000 7300000 1000000 1000000 7300000 2900000 2900000 10000000 7300000 61728 8950560 9999936 7901184 4012320 4999968 8950560 3950592 4999968 4012320 123456 4999968 4494200 9932182 9932182 8381683 112355 9932182 5505395 9460291 9932182 9999595 4494200 9190639 5994936 671...
output:
1 1 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0
result:
ok 20 lines
Test #5:
score: 0
Accepted
time: 30ms
memory: 3952kb
input:
20 10000000 5078125 3828125 78125 5000000 5078125 1250000 10000000 6250000 5000000 6250000 1250000 7079600 5663680 1415920 7079600 796455 9999935 5663680 9999935 5752175 5663680 88495 5752175 4410468 1135368 9999972 5676840 4541472 5676840 4541472 5676840 5676840 8078580 742356 6288192 8345560 44707...
output:
1 1 0 0 0 1 1 1 1 1 1 0 0 1 0 1 0 1 0 0
result:
ok 20 lines
Test #6:
score: 0
Accepted
time: 29ms
memory: 3896kb
input:
20 10000000 5078125 3828125 2031250 78125 1953125 703125 5078125 2031250 5000000 10000000 5000000 5000000 10000000 5000000 5000000 2890625 390625 6250000 1250000 10000000 1250000 2890625 3515625 6711400 9999986 3288586 4899322 4295296 604026 6979856 9999986 4899322 6711400 6979856 268456 9767552 645...
output:
1 1 1 0 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 0
result:
ok 20 lines
Test #7:
score: 0
Accepted
time: 29ms
memory: 3968kb
input:
20 3063559 8439238 9999919 3063559 9999919 3005756 8381435 9999919 8439238 8381435 3005756 9999919 6923007 4319483 4852022 2130156 4319483 769223 9999899 3076892 6923007 6923007 2899379 4852022 3271584 4999968 493824 6049344 61728 5246880 4999968 4999968 9999936 5246880 3271584 3950592 7398784 99999...
output:
1 1 1 1 0 1 0 0 1 0 0 0 0 1 0 0 0 1 0 0
result:
ok 20 lines
Test #8:
score: 0
Accepted
time: 29ms
memory: 3832kb
input:
20 5524800 4475088 9999888 55248 4475088 4530336 9999888 5580048 5524800 55248 4530336 5580048 7123920 8940020 2698748 6206580 7677584 8296048 6252164 6473284 9023920 7524124 4702788 5944204 7901120 7901120 6320896 6320896 7901120 7901120 9135670 9999855 913567 1506151 1111095 98764 2222220 3555552 ...
output:
1 0 0 1 0 1 1 0 0 1 1 1 1 1 0 1 0 0 1 0
result:
ok 20 lines
Test #9:
score: 0
Accepted
time: 25ms
memory: 3892kb
input:
20 3404348 6811514 5073762 1575108 4047618 3481696 6589302 6594868 4559458 5124278 2664770 3517574 5393960 2157584 5393960 5393960 2157584 5393960 2199076 9999572 2821456 2157584 8972645 8723693 2091488 4248335 9999927 9999927 9542414 7385567 4248335 9542414 9999927 9999927 2091488 7385567 5867350 7...
output:
0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1 0 1
result:
ok 20 lines
Test #10:
score: 0
Accepted
time: 29ms
memory: 3856kb
input:
20 4753532 8244880 6269438 3937444 762818 4555348 7280126 5303718 8327606 9077712 1705788 9903866 4999968 9999936 4999968 555552 7222176 9999936 6543168 1543200 4999968 7222176 6543168 61728 1360000 6560000 3664000 6560000 6560000 4608000 10000000 2960000 6560000 1152000 2320000 3664000 1709400 5470...
output:
0 1 0 0 1 0 1 1 0 0 1 1 1 1 0 1 0 1 0 0
result:
ok 20 lines
Test #11:
score: 0
Accepted
time: 29ms
memory: 3820kb
input:
20 2615382 9846144 9999990 9846144 9999990 9999990 9999990 2769228 2615382 9999990 2769228 9999990 9191125 9999944 4779385 1323522 9191125 6544081 6544081 9999944 9191125 1323522 9191125 4779385 7028892 1743768 1991340 7028892 7028892 1743768 8234460 4865328 7028892 2378844 7599384 9999756 9731530 4...
output:
1 1 0 1 1 1 0 0 1 0 0 0 1 1 1 1 0 1 1 1
result:
ok 20 lines
Test #12:
score: 0
Accepted
time: 29ms
memory: 3900kb
input:
20 4999960 6173420 3316300 4999960 4999960 9999920 459180 459180 918360 1632640 459180 3316300 6328125 5078125 156250 5078125 6328125 10000000 6328125 5078125 10000000 6328125 156250 5078125 9979836 8089680 8280504 7601784 7634364 7141536 5377824 7028244 4492560 5815068 7928868 4377312 720000 800000...
output:
1 1 0 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 1
result:
ok 20 lines
Test #13:
score: 0
Accepted
time: 29ms
memory: 3912kb
input:
20 9999916 1689175 5743195 5743195 878371 4999958 9999916 4999958 4999958 1689175 878371 4999958 6301605 4049556 6301605 2024778 4049556 2024778 7293333 330576 6301605 9999924 6115656 3388404 617280 7901184 6543168 617280 123456 987648 4999968 4999968 9999936 1543200 6543168 4999968 3828125 1953125 ...
output:
1 0 1 1 0 1 1 1 1 0 1 0 0 1 0 0 0 0 0 1
result:
ok 20 lines
Test #14:
score: 0
Accepted
time: 29ms
memory: 3820kb
input:
20 9999720 2888808 3555456 7610898 3555456 7610898 4944306 8805309 1805505 7610898 7610898 3555456 4999968 4999968 9999936 6543168 1543200 2530848 987648 9999936 6543168 1543200 987648 2530848 4999967 2358475 5471662 754712 5471662 9999934 754712 4999967 2358475 4999967 9999934 4999967 5371860 20661...
output:
0 1 1 0 0 1 1 1 0 1 0 0 1 0 1 1 1 1 1 0
result:
ok 20 lines
Test #15:
score: 0
Accepted
time: 29ms
memory: 3956kb
input:
20 4999968 4999968 9999936 4999968 5555520 555552 5555520 3402756 1180548 1180548 2222208 1736100 2207678 4505792 4722268 6840476 4330164 8510736 5829672 8496568 9904306 4191336 5368108 9200414 2644740 821072 2890020 3199420 6624380 4992680 6593608 7493780 2880304 9678732 5684644 8431388 9999920 433...
output:
1 0 0 1 0 0 0 1 1 0 1 1 1 1 0 1 0 1 1 0
result:
ok 20 lines
Test #16:
score: 0
Accepted
time: 30ms
memory: 3948kb
input:
20 8136144 6408528 8054156 7239584 6536596 1012996 1884652 5391096 6567204 1480764 5442988 5704872 9999936 4999968 4999968 902772 5069412 6944400 4999968 902772 5069412 3611088 4999968 277776 6358573 6634433 717236 2110329 2013778 1558609 9737858 9999925 6634433 717236 6634433 6634433 8820735 572387...
output:
0 1 0 0 0 1 1 0 0 0 1 1 1 0 1 0 1 1 1 0
result:
ok 20 lines
Test #17:
score: 0
Accepted
time: 29ms
memory: 3908kb
input:
20 1479580 2551000 2499980 1479580 5408120 2499980 4999960 9999920 4999960 408160 5408120 4999960 1418208 6119592 6943616 4717024 1703128 4933672 8516320 2379048 9953024 6649448 9056784 2567000 6639370 1661665 8301033 6639370 8297389 8301033 1658021 6639370 1661665 8297389 6639370 1658021 8390964 71...
output:
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 0 1
result:
ok 20 lines
Test #18:
score: 0
Accepted
time: 29ms
memory: 3724kb
input:
20 7346880 3775480 2551000 408160 3775480 3775480 4999960 3775480 204080 4999960 9999920 4999960 1493307 3497157 3289248 8523972 9198432 4312377 9709335 6351264 6294204 6821208 8165214 7286535 3024672 1543200 1111104 4999968 5246880 246912 4444416 5246880 1543200 4999968 4999968 9999936 3773520 1886...
output:
1 0 1 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 1 1
result:
ok 20 lines
Test #19:
score: 0
Accepted
time: 29ms
memory: 3832kb
input:
20 2352936 2941170 9999978 6522477 1470585 8062266 9999978 4999989 4999989 1245672 4999989 1470585 816320 1326520 1734680 4999960 9999920 4999960 5306080 2653040 2653040 5306080 1020400 9999920 1592350 9745182 5222908 5222908 9999958 9745182 6369400 9745182 1592350 6369400 9745182 9999958 5103567 38...
output:
0 0 1 0 1 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1
result:
ok 20 lines
Test #20:
score: 0
Accepted
time: 29ms
memory: 3768kb
input:
20 7799454 2234856 7068594 7469592 6119295 2577003 5131074 5574153 788268 9870705 8852376 4653597 5475555 487800 2695095 6158475 4938975 9999900 2756070 6890175 6890175 2756070 6890175 6890175 800000 400000 400000 5000000 10000000 5000000 5000000 6800000 1800000 6800000 400000 6400000 9999916 844587...
output:
0 0 1 0 0 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0
result:
ok 20 lines
Test #21:
score: 0
Accepted
time: 25ms
memory: 3760kb
input:
20 8237460 1860180 7272027 4902072 8849757 8065575 3965220 5917359 3180429 3014466 9630789 9316083 7918794 5678634 9874566 2886624 5180292 7598136 4464798 1190046 4641780 1591902 1488552 2232360 5111680 7316092 1437660 5111680 4089344 5111680 5111680 5239472 1661296 3610124 1661296 9999724 10000000 ...
output:
0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0
result:
ok 20 lines
Test #22:
score: 0
Accepted
time: 30ms
memory: 3828kb
input:
20 1938141 7950042 2037501 9986301 2037501 7950042 1938141 7950042 9886941 9986301 9886941 7950042 8268288 8041242 2564520 9467202 6784944 8153346 7401474 5033406 4490748 9289506 9273174 3531036 1780818 4999989 890409 4999989 1780818 5821905 9999978 890409 5821905 9999978 4999989 4999989 9999909 269...
output:
1 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0
result:
ok 20 lines
Test #23:
score: 0
Accepted
time: 29ms
memory: 3896kb
input:
20 2416104 6711400 9127504 1677850 9999986 9127504 1073824 604026 1677850 6711400 3288586 9999986 7352800 8602776 2720536 5974150 5974150 919100 919100 5974150 5974150 5441072 9999808 1911728 9392195 5013150 8219905 5548800 4903200 1000450 5186040 4242970 3048285 4759225 2184840 5285745 8648640 7837...
output:
1 0 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0
result:
ok 20 lines
Test #24:
score: -100
Wrong Answer
time: 30ms
memory: 3952kb
input:
20 5102000 9999920 3673440 9999920 5408120 8265240 5408120 2551000 9999920 5102000 9999920 6530560 5000000 5000000 10000000 3200000 5000000 8200000 8100000 200000 6500000 6500000 100000 8200000 4999968 4999968 9999936 9999936 2777760 2777760 694440 2777760 1249992 6249960 1249992 4999968 9999990 345...
output:
0 1 1 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0
result:
wrong answer 1st lines differ - expected: '1', found: '0'