Submission #108096


Source Code Expand

import java.util.ArrayList;
import java.util.Scanner;

public class Main {

	Scanner sc = new Scanner(System.in);
	public void run() {
		int n = sc.nextInt();
		calc(n);
		
	}
	public void calc(int n){
		ArrayList<int[]> list = new ArrayList<int[]>();
		for(int i = 0; i < n; i++){
			String line = sc.next();
			String[] s = line.split("-");
			list.add(new int[]{marume_s(Integer.valueOf(s[0])), marume_e(Integer.valueOf(s[1]))});
		}
		
		list = sort(list);
		
		int[] time = list.get(0);
		int s = time[0];
		int e = time[1];
		
		
		
		for(int i = 1; i < n; i++){
			int[] timen = list.get(i);
			int sn = timen[0];
			int en = timen[1];
			if (e < sn){
				System.out.println(print(s) + "-" + print(e));
				s = sn;
				e = en;
			}
			else{
				if(e < en) e = en;
			}
		}
		System.out.println(print(s) + "-" + print(e));
	}

	public String print(int time){
		String s = "";
		if(time < 1000){
			s = s + "0";
		}
		if(time < 100){
			s = s + "0";
		}
		if(time < 10){
			s = s + "0";
		}
		s = s + Integer.toString(time);
		return s;
	}
	public int marume_s(int s){
		int t = s % 10;
		if(t == 0 || t == 5) return s;
		else if(t > 0 && t < 5) return s - t;
		else return s - t + 5;
	}
	public int marume_e(int s){
		int t = s % 10;
		if(t == 0 || t == 5) return s;
		else if(t > 0 && t < 5) return s - t + 5;
		else{
			s = s - t + 10;
			if(s % 100 == 60){
				s = s - 60;
				s = s + 100;
			}
			if(s >= 2400){
				s = 2400;
			}
			return s;
		}
	}
	public ArrayList<int[]> sort(ArrayList<int[]> list){
		if(list.size() <= 1) return list;
		else{
			int s1 = list.size() / 2;
			int s2 = list.size() - s1;
			ArrayList<int[]> a1 = new ArrayList<int[]>();
			ArrayList<int[]> a2 = new ArrayList<int[]>();
			
			for(int i = 0; i< s1; i++) a1.add(list.get(i));
			for(int i = 0; i < s2; i++) a2.add(list.get(i + s1));
			
			a1 = sort(a1);
			a2 = sort(a2);
			return merge(a1, a2);
		}
	}
	public ArrayList<int[]> merge(ArrayList<int[]> a1, ArrayList<int[]> a2){
		int i = 0;
		int j = 0;
		ArrayList<int[]> list = new ArrayList<int[]>();
		while(i < a1.size() || j < a2.size()){
			if(j >= a2.size() || (i < a1.size() && (a1.get(i)[0] < a2.get(j)[0] || 
					(a1.get(i)[0] == a2.get(j)[0] && a1.get(i)[1] < a2.get(j)[1])))){
				list.add(a1.get(i));
				i = i + 1;
			}
			else {
				list.add(a2.get(j));
				j = j + 1;
			}
		}
		return list;
	}
	public static void main(String[] args) {
		new Main().run();
	}
}

Submission Info

Submission Time
Task D - 感雨時刻の整理
User wapiko
Language Java (OpenJDK 1.7.0)
Score 100
Code Size 2540 Byte
Status AC
Exec Time 1267 ms
Memory 45720 KB

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 48
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 556 ms 23352 KB
00_sample_02.txt AC 507 ms 23348 KB
00_sample_03.txt AC 508 ms 23344 KB
cho_cho_chokudai.txt AC 1234 ms 44832 KB
chokudai_ga_cho.txt AC 1197 ms 45396 KB
test_01.txt AC 552 ms 23600 KB
test_02.txt AC 554 ms 23728 KB
test_03.txt AC 543 ms 23728 KB
test_04.txt AC 527 ms 23604 KB
test_05.txt AC 559 ms 23600 KB
test_06.txt AC 544 ms 23728 KB
test_07.txt AC 531 ms 23600 KB
test_08.txt AC 550 ms 23340 KB
test_09.txt AC 571 ms 25312 KB
test_10.txt AC 580 ms 25464 KB
test_11.txt AC 582 ms 24496 KB
test_12.txt AC 572 ms 23992 KB
test_13.txt AC 550 ms 23640 KB
test_14.txt AC 610 ms 25160 KB
test_15.txt AC 603 ms 26188 KB
test_16.txt AC 539 ms 23696 KB
test_17.txt AC 591 ms 25120 KB
test_18.txt AC 544 ms 23600 KB
test_19.txt AC 550 ms 23984 KB
test_20.txt AC 549 ms 24368 KB
test_21.txt AC 1161 ms 44200 KB
test_22.txt AC 1213 ms 44324 KB
test_23.txt AC 1213 ms 44696 KB
test_24.txt AC 1267 ms 45720 KB
test_25.txt AC 1249 ms 45260 KB
test_26.txt AC 1105 ms 41320 KB
test_27.txt AC 1074 ms 40656 KB
test_28.txt AC 1033 ms 40864 KB
test_29.txt AC 518 ms 23348 KB
test_30.txt AC 525 ms 23340 KB
test_31.txt AC 771 ms 34744 KB
test_32.txt AC 516 ms 23336 KB
test_33.txt AC 1129 ms 43856 KB
test_34.txt AC 506 ms 23348 KB
test_35.txt AC 539 ms 23864 KB
test_36.txt AC 1124 ms 45388 KB
test_37.txt AC 1207 ms 43772 KB
test_38.txt AC 1257 ms 44704 KB
test_39.txt AC 1212 ms 44380 KB
test_40.txt AC 1173 ms 43492 KB
test_41.txt AC 1053 ms 41640 KB
test_42.txt AC 1158 ms 44168 KB
test_43.txt AC 1111 ms 43912 KB