[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;
}

留言

這個網誌中的熱門文章

[TIOJ] 1271. [IOI 2012] Scrivener 斯克里夫尼

[TIOJ] 1429. [APIO '12] 忍者調度問題

[Codeforces] 731D. 80-th Level Archeology