由题目可知,最大值不超过1e18,而longlong最大值为9e18,因此开到longlong足以,我们直接获取小时,分钟,秒数,对于小时数我们直接降到24之内即可
上代码
#include<iostream>
#include<cstring>
#include<algorithm>
#define int long long//开longlong防止爆掉
using namespace std;
signed main(void)
{
int n; cin >> n;
n /= 1000;//转化为秒
int h = n / 3600;//小时数
int m = n % 3600 / 60;//分钟数
int s = n % 60;//秒数
while(h >= 24) h -= 24;
printf("%02lld:%02lld:%02lld\n",h, m, s);
return 0;
}