[TIOJ] 1009. In No Time!

題目連結:http://tioj.infor.org/problems/1009
我的作法是先把它轉成秒數,然後相減如果變負的就多加一天的秒數,最後再轉回原本的格式
#include <iostream>
#include <string>

using namespace std;

inline int c2i(char k){
	return k-'0';
}
inline string i2s(int n){
	if(n<10)
		return "0"+to_string(n);
	return to_string(n);
}
inline int t2i(string k){
	return ((c2i(k[0])*10+c2i(k[1]))*60 + c2i(k[3])*10+c2i(k[4]))*60 + c2i(k[6])*10+c2i(k[7]);
}
inline string i2t(int n){
	string a = i2s(n/3600) + ":";
	n-=n/3600*3600;
	a+=i2s(n/60) + ":";
	n-=n/60*60;
	a+=i2s(n);
	return a;
}

int main(){
	string n,m;
	int Tn,Tm;
	cin>>n;
	cin>>m;
	Tn=t2i(n);
	Tm=t2i(m);
	if(Tm<Tn)
		Tm+=86400;
	cout<<i2t(Tm-Tn)<<endl;
	return 0;
}

留言

這個網誌中的熱門文章

[NPSC] 2009初賽 E. 檸檬汽水傳說

[TIOJ] 1902. 「殿仁.王,不認識,誰啊?」,然後他就死了……

[AtCoder] [經典競程 90 題] 024 - Select +/- One(★2)