Problem:
宿題 (Homework)

問題

冬休みの宿題に毎回苦しめられてきた JOI 君が，今回は宿題を計画的に実行することにした．宿題は国語と算数のドリルであり，国語のドリルは A ページ，算数のドリルは B ページある．

JOI 君は，1 日に国語のドリルを最大 C ページと，算数のドリルを最大 D ページ進めることができるが，宿題をするとその日は遊ぶことができない．

冬休みは L 日あり，JOI 君は冬休み中に宿題を終わらせなければならない．JOI 君が冬休み中に最大で何日遊べるかを求めるプログラムを作成せよ．

入力

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

1 行目には整数 L (2 ≦ L ≦ 40) が書かれており，冬休みの日数を表す．

2 行目には整数 A (1 ≦ A ≦ 1000) が書かれており，国語のドリルのページ数を表す．

3 行目には整数 B (1 ≦ B ≦ 1000) が書かれており，算数のドリルのページ数を表す．

4 行目には整数 C (1 ≦ C ≦ 100) が書かれており，JOI 君が 1 日に進めることができる国語のドリルの最大ページ数を表す．

5 行目には整数 D (1 ≦ D ≦ 100) が書かれており，JOI 君が 1 日に進めることができる算数のドリルの最大ページ数を表す．

ただし，与えられる入力データにおいては，JOI 君が冬休み中に宿題を必ず終わらせることができ，
少なくとも 1 日は遊べることが保証されている．

出力

JOI 君が冬休み中に遊べる日数の最大値を 1 行で出力せよ．

入出力例

入力例 1

20
25
30
6
8

出力例 1

15

入出力例 1 では，冬休みは 20 日間あり，国語のドリルが 25 ページ，算数のドリルが 30 ページある．JOI 君は 1 日に国語のドリルを最大 6 ページ，算数のドリルを最大 8 ページ進めることができる．例えば JOI 君が冬休み初日から国語のドリルを 6 ページ，算数のドリルを 8 ページずつ進めたとすると，国語のドリルを 5 日目に，算数のドリルを 4 日目に終わらせることができ，15 日間遊ぶことができる．これが JOI 君が冬休み中に遊べる日数の最大値なので，15 を出力する．

入力例 2

15
32
48
4
6

出力例 2

7

入出力例 2 では，
例えば JOI 君が初日から国語のドリルを 4 ページ，算数のドリルを 6 ページずつ進めたとすると，8 日目に両方のドリルを終わらせることができ，7 日間遊ぶことができる．これが JOI 君が冬休み中に遊べる日数の最大値なので，7 を出力する．

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

Solution in JAVA (judge verdict: Accepted)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


public class Main {

	public static void main(String[] args) {
		Main main = new Main();
		main.playDaysCalculation();
		return;
	}
	
	//遊べる日数を計算する
	private void playDaysCalculation() {
		
		BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); //標準入力
		
		try {
			
			String inputStr = bufferedReader.readLine();
			int winterBreakDays = Integer.parseInt(inputStr);
			
			String inputStr2 = bufferedReader.readLine();
			double languageWorkbookPageNum = Double.parseDouble(inputStr2);
			
			String inputStr3 = bufferedReader.readLine();
			double arithmeticWorkbookPageNum = Double.parseDouble(inputStr3);
			
			String inputStr4 = bufferedReader.readLine();
			double languageProgressNum = Double.parseDouble(inputStr4);
			
			String inputStr5 = bufferedReader.readLine();
			double arithmeticProgressNum = Double.parseDouble(inputStr5);
			
			double languageWorkbookEndDays = languageWorkbookPageNum / languageProgressNum;
			double arithmeticWorkbookEndDays = arithmeticWorkbookPageNum / arithmeticProgressNum;
			
			int workbookEndDays = 0;
			if (languageWorkbookEndDays > arithmeticWorkbookEndDays) {
				workbookEndDays = (int)Math.ceil(languageWorkbookEndDays);
			} else if (languageWorkbookEndDays < arithmeticWorkbookEndDays) {
				workbookEndDays = (int)Math.ceil(arithmeticWorkbookEndDays);
			} else if (languageWorkbookEndDays == arithmeticWorkbookEndDays) {
				workbookEndDays = (int)Math.ceil(languageWorkbookEndDays);
			}
			
			System.out.println(winterBreakDays - workbookEndDays);
			
		} catch (IOException e) {
			// TODO 自動生成された catch ブロック
			e.printStackTrace();
		}
		
	}

}