吴梓峤
(浮生梦)
1

#include <bits/stdc++.h>
using namespace std;
const int N=45000;
int t,cnt;
double a,b,c;
//a是时针与分针的夹角,b是时针与秒针的夹角,c是分针与秒针的夹角
int h[N],m[N],s[N];
int main(){
cin>>t;
while(t--){
double k1,j1,k2,j2,k3,j3;char ch;
//k/j表示两根针之间的角度
cin>>k1>>ch>>j1>>k2>>ch>>j2>>k3>>ch>>j3;
k1/=j1,k2/=j2,k3/=j3;//计算角度
a=k1/6,b=k2/6,c=k3/6;//计算格子数(小格)
//枚举所有情况
cnt=0;//计数器归零
for(int i=0;i<12;i++)
for(int j=0;j<60;j++)
for(int k=0;k<60;k++){
double aa=i*5,bb=j,cc=k;
//计算时针、分针、秒针分别在哪一格
aa+=(double)j/60,bb+=(double)k/60;//计算偏移
if(aa>30) aa=60-aa;
if(bb>30) bb=60-bb;
if(fabs(aa-bb-a)<1e-5&&fabs(aa-cc-b)<1e-5&&fabs(bb-cc-c)<1e-5)
h[++cnt]=i,m[cnt]=j,s[cnt]=k;//记录满足条件的答案
}
cout<<cnt<<endl;
for(int i=1;i<=cnt;i++)
printf("%d:%d:%d\n",h[i],m[i],s[i]);
}
return 0;
}
吴梓峤
(浮生梦)
2