欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[Java] Milking Cows

程序员文章站 2022-03-19 15:41:35
/* Use the slash-star style comments or the system won't see your identification information *//*ID: lincans1LANG: JAVATASK: milk2 */import java.io.*;import java.util.*;public class milk2 {private final int MAXLENGTH = 1000000;public milk2(...
/* Use the slash-star style comments or the system won't see your
   identification information */
/*
ID: lincans1
LANG: JAVA
TASK: milk2 
*/
import java.io.*;
import java.util.*;

public class milk2 {
	private final int MAXLENGTH = 1000000;
	public milk2() throws IOException {
		// Use BufferedReader rather than RandomAccessFile; it's much faster
		BufferedReader f = new BufferedReader(new FileReader("milk2.in"));
		PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("milk2.out")));
		int N = Integer.parseInt(f.readLine());
		boolean[] flag = new boolean[MAXLENGTH];
		int start = Integer.MAX_VALUE, end = Integer.MIN_VALUE;
		for (int i = 0; i < N; i++) {
			StringTokenizer st = new StringTokenizer(f.readLine());
			int s = Integer.parseInt(st.nextToken());
			int e = Integer.parseInt(st.nextToken());

			start = Math.min(start, s);
			end   = Math.max(end, e);
			while (s < e) {
				flag[s++] = true;
			}
		}
		int maxContinuous = 0, maxIdle = 0;
		while (start < end) {
			int continuous = 0, idle = 0;
			while (start < end && flag[start]) {
				continuous++;
				start++;
			}
			while (start < end && !flag[start]) {
				idle++;
				start++;
			}
			maxContinuous = Math.max(maxContinuous, continuous);
			maxIdle		  = Math.max(maxIdle, idle);
			// System.out.println(maxContinuous + " " + maxIdle);
		}
		out.println(maxContinuous + " " + maxIdle);
		out.close();
	}
	public static void main (String [] args) throws IOException {
		new milk2();
	}
}

本文地址:https://blog.csdn.net/weixin_41714373/article/details/111888485

相关标签: USACO