Problem:
合計時間 (Total Time)

問題

太郎君は 3 カ所の店を訪ねることを日課にしている．家を出発し，決まった順番で 3 カ所の店を回った後，家に帰る．ときどき，ストップウォッチを使って，各区間を移動するのに何秒かかったかを計り，その秒数を記録する．

ある日の計測結果が与えられたとき，この日の移動時間の合計が何分何秒かを求めるプログラムを作成せよ．

入力

入力は 4 行からなり， 1 行に 1 つずつ正の整数が書かれている．

1 行目の整数は家から 1 つ目の店までの移動時間を表す秒数である．

2 行目の整数は 1 つ目の店から 2 つ目の店までの移動時間を表す秒数である．

3 行目の整数は 2 つ目の店から 3 つ目の店までの移動時間を表す秒数である．

4 行目の整数は 3 つ目の店から家までの移動時間を表す秒数である．ただし，与えられる入力データにおいては合計移動時間は 1 分 0 秒以上で 59 分 59 秒以下であることが保証されている．

出力

出力は 2 行からなる．x 分 y 秒 (1 ≤ x ≤ 59 , 0 ≤ y ≤ 59 )のとき， 1行目に x を，2行目に y を出力せよ．

入出力例

入力例 1

31
34
7
151

出力例 1

3
43

入力例 2

316
430
643
1253

出力例 2

44
2

入力例 3

5
10
15
30

出力例 3

1
0

問題文と自動審判に使われるデータは、情報オリンピック日本委員会が作成し公開している問題文と採点用テストデータです。

Solution in C# (judge verdict: Accepted)

using System;
using System.Collections.Generic;
using System.Data.SqlTypes;
using System.IO.Pipes;
using System.Linq;

class Program
{ 
	public static int Main()
	{
		Scanner cin = new Scanner();
	  TimeSpan t = new TimeSpan(0, 0, 0);
	  for (int i = 0; i < 4; i++)
	  {
	    t += new TimeSpan(0, 0, cin.nextInt());
	  }
    Console.WriteLine(t.Minutes);
    Console.WriteLine(t.Seconds);
		return 0;
	}

}

class Scanner {
	string[] s;
	int i;

	char[] cs = new char[] { ' ' };

	public Scanner() {
		s = new string[0];
		i = 0;
	}

	public string next() {
		if (i < s.Length) return s[i++];
		do {
			s = Console.ReadLine().Split(cs, StringSplitOptions.RemoveEmptyEntries);
		} while ((s.Length == 1 && s[0] == "") || s.Length == 0);
		i = 0;
		return s[i++];
	}

	public int nextInt() {
		return int.Parse(next());
	}

	public long nextLong() {
		return long.Parse(next());
	}

	public double nextDouble() {
		return double.Parse(next());
	}

}