ababup1192
2/5/2015 - 2:01 AM

Getting Started - Maximum Profit http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ALDS1_1_D

import scala.io._

object Main extends App {
  val n = StdIn.readInt
  // 入力を流し込んで(最大,最小)のタプルを書き換えて(畳み込んで)いく。
  val (max,min) = Iterator.continually(readLine()).takeWhile(_ != null)
    .foldLeft((Int.MinValue, Int.MaxValue)){
      case ((preMax,preMin),in) =>
        val inNum = in.toInt
        val max = Math.max(preMax, inNum - preMin)
        val min = Math.min(preMin, inNum)
        (max, min)
  }
  // 最終結果のmaxを出力。
  println(max)
}
import java.util.Scanner;

public class Main{
    public static void main(String[] args){
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();

        // 初期値を仮で最小値に
        int minv = scan.nextInt();
        // 更新できるように最大値に十分小さい値を
        int maxv = Integer.MIN_VALUE;

        for(int i=1;i<n;i++){
           int in = scan.nextInt();
           // 最大値の更新
           maxv = Math.max(maxv, in-minv);
           // 最小値の更新
           minv = Math.min(minv, in);
        }
        System.out.println(maxv);
    }
}