有一個標準的12小時時鐘,它有一個時針,一個分針。現問你,在給定的兩個時刻之間分針與時針相遇幾次?
輸入包含多組測試數據。每組輸入包含4個整數,前兩個數字分別表示起始時刻的小時和分,后兩個數字分別表示結束時刻的小時和分。小時數在[1,12]內,分鐘數在[0,59]內。注意:1)輸入中的起始和結束時刻均不會出現時針和分針恰好相遇的情況,例如12點0分。2)輸入中不會出現起始時刻和結束時刻相同的情況。3)在時針從起始時刻到結束時刻運轉的過程中,時針轉過的角度一定小于360度。4)在時針從起始時刻到結束時刻運轉的過程中,時針有可能越過表盤上12點鐘的刻度。 如果越過了,說明起始時刻和結束時刻中一個是A.M.,一個是P.M.。如果沒越過,說明起始時刻和結束時刻都是A.M.或都是P.M.。
每組測試數據輸出一行:起始時刻 結束時刻 小于次數,數據之間用空格隔開。
起始時刻和結束時刻的輸出格式請參照輸出樣例。
12 50 1 23 8 3 202 45 11 011 0 3 201 2 12 503 20 3 8Sample Output
12:50 01:02 003:08 03:20 102:45 11:00 811:00 03:20 401:02 12:50 1103:20 03:08 10參考代碼
#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<string>#include<algorithm>#include<stack>#include<queue>#include<vector>#include<map> using namespace std;int a,b,c,d; int main(){ while( ~scanf("%d%d%d%d",&a,&b,&c,&d)) { int s = (a%12)*60+b;//多少分鐘 int f = (c%12)*60+d; int cost = (int)(f/720.0*11) - (int)(s/720.0*11); if( s > f) cost += 11; PRintf("%02d:%02d %02d:%02d %d/n",a,b,c,d,cost); } return 0;}
新聞熱點
疑難解答