一日一プロ

アルゴリズムとデータ構造

問題

n個の数字R0〜Rn-1が与えられる。
Rj - Ri (i < j)が最大となる値を求めよ。

using System;
using System.Collections.Generic;

namespace MaximumProfit
{
	class MainClass
	{
		const int MaximumProfit = 200000;

		public static void Main (string[] args)
		{
			var R = new List<int>();
			int minv = 0;
			int maxv = -20000000;

			int n = int.Parse (Console.ReadLine ());

			for (int i = 0; i < n; i++) {
				R.Add(int.Parse (Console.ReadLine ()));
			}

			minv = R [0];
			for (int i = 1; i < R.Count; i++) {
				maxv = Math.Max (maxv, R [i] - minv);
				minv = Math.Min (minv, R [i]);
			}

			Console.WriteLine ("{0}", maxv);

		}
	}
}