#include <stdio.h>
struct time
{
int hour;
int minute;
int second;
};
void going(struct time *h,int *t,int n);
int main()
{
int n=0;
scanf("%d",&n);
struct time h[n];
//给结构体数组h[0]初始化
h[0].hour=0;
h[0].minute=0;
h[0].second=0;
int t[n];//定义一个数组存放输入的时间
int i=0;
for(i=0;i<n;i++)//输入时间
{
scanf("%d",&t[i]);
}
going(h,t,n);//调用函数计算经过t秒后的时间
for(i=0;i<n;i++)//输出计算后的时间
{
printf("%d %d %d\n",h[i].hour,h[i].minute,h[i].second);
}
return 0;
}
void going(struct time *h,int *t,int n)//定义函数计算经过t秒后的时间
{
int i=0;
int temp;//定义临时变量temp接收t时间
for(i=0;i<n;i++)
{
temp=t[i];
while(temp>=60)//判断temp是否大于60秒
{
//temp大于60秒进入while循环
if((h[i].minute+1)<60)
{
h[i].minute=h[i].minute+1;
}
else
{
h[i].minute=0;
if((h[i].hour+1)<24)
{
h[i].hour=h[i].hour+1;
}
else
{
h[i].hour=0;
}
}
temp=temp-60;
}
//经过while循环后temp已经小于60
if((h[i].second+temp)<60)//再进行时间加法运算
{
h[i].second=h[i].second+temp;
}
else
{
h[i].second=(h[i].second+temp)%60;
if((h[i].minute+1)<60)
{
h[i].minute++;
}
else
{
h[i].minute=0;
if((h[i].hour+1)<24)
{
h[i].hour++;
}
else
{
h[i].hour=0;
}
}
}
if(i<n-1)//给结构体数组的下一元素赋值为本次循环计算后的时间
h[i+1]=h[i];
}
}