Submission #673894
Source Code Expand
import java.util.Scanner; import java.util.Arrays; import java.util.ArrayList; public class Main { class Interval implements Comparable{ int start_h; int start_m; int end_h; int end_m; public Interval(int start_h, int start_m, int end_h, int end_m) { this.start_h = start_h; this.start_m = start_m; this.end_h = end_h; this.end_m = end_m; } public int compareTo(Object obj) { if (this.start_h < ((Interval)obj).start_h) return -1; else if (this.start_h == ((Interval)obj).start_h) { if (this.start_m < ((Interval)obj).start_m) return -1; else if (this.start_m == ((Interval)obj).start_m) { if (this.end_h < ((Interval)obj).end_h) return -1; else if (this.end_h == ((Interval)obj).end_h) { if (this.end_m < ((Interval)obj).end_m) return -1; else if (this.end_m == ((Interval)obj).end_m) return 0; else return 1; } else return 1; } else return 1; } else return 1; } public Interval isBetweenInterval(Interval interval) throws Exception { if (interval.start_h < this.end_h || (interval.start_h == this.end_h && interval.start_m <= this.end_m)) { if (interval.end_h < this.end_h || (interval.end_h == this.end_h && interval.end_m <= this.end_m)) { return this; } else if (this.end_h < interval.end_h || (this.end_h == interval.end_h && this.end_m < interval.end_m)) { return new Interval(this.start_h, this.start_m, interval.end_h, interval.end_m); } else { throw new Exception(); } } else { return null; } } public void round() { this.start_m = this.start_m / 5 * 5; int end_m = this.end_m % 5 == 0 ? this.end_m / 5 : this.end_m / 5 + 1; this.end_m = end_m * 5; if (this.end_m == 60) { this.end_h = this.end_h + 1; this.end_m = 0; } } public String toString() { StringBuilder str = new StringBuilder(); str.append(String.format("%02d", this.start_h)); str.append(String.format("%02d", this.start_m)); str.append("-"); str.append(String.format("%02d", this.end_h)); str.append(String.format("%02d", this.end_m)); return str.toString(); } } Interval intervals[]; ArrayList<String> answers = new ArrayList<String>(); public static void main(String args[]) { new Main().solve(); } void solve() { Scanner scan = new Scanner(System.in); int n = scan.nextInt(); String start[] = new String[n]; String end[] = new String[n]; intervals = new Interval[n]; for (int i = 0; i < n; i++) { String time = scan.next(); String t[] = time.split("-"); start[i] = t[0]; end[i] = t[1]; intervals[i] = new Interval(Integer.parseInt(t[0].substring(0, 2)), Integer.parseInt(t[0].substring(2, 4)), Integer.parseInt(t[1].substring(0, 2)), Integer.parseInt(t[1].substring(2, 4))); } for (Interval interval : intervals) { interval.round(); } Arrays.sort(intervals); //for (Interval interval : intervals) { // System.out.printf("%d:%d - %d:%d\n", interval.start_h, interval.start_m, interval.end_h, interval.end_m); //} try { integrate(intervals[0], 0); } catch(Exception ex) {ex.printStackTrace();} for (String answer : answers) { System.out.println(answer); } } void integrate(Interval interval, int index) throws Exception{ int i = index + 1; if (i == intervals.length) answers.add(interval.toString()); else { Interval inter = interval.isBetweenInterval(intervals[i]); if (inter != null) { // System.out.println(i + ": new Interval = " + inter); integrate(inter, i); } else { // System.out.println(i + ": answer interval = " + interval); answers.add(interval.toString()); integrate(intervals[i], i); } } } }
Submission Info
Submission Time | |
---|---|
Task | D - 感雨時刻の整理 |
User | kawakawaryuryu |
Language | Java (OpenJDK 1.7.0) |
Score | 100 |
Code Size | 3852 Byte |
Status | AC |
Exec Time | 1056 ms |
Memory | 48428 KB |
Judge Result
Set Name | all | ||
---|---|---|---|
Score / Max Score | 100 / 100 | ||
Status |
|
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 | 359 ms | 23632 KB |
00_sample_02.txt | AC | 360 ms | 23580 KB |
00_sample_03.txt | AC | 359 ms | 23532 KB |
cho_cho_chokudai.txt | AC | 882 ms | 45740 KB |
chokudai_ga_cho.txt | AC | 943 ms | 47352 KB |
test_01.txt | AC | 432 ms | 24528 KB |
test_02.txt | AC | 433 ms | 24460 KB |
test_03.txt | AC | 436 ms | 24472 KB |
test_04.txt | AC | 433 ms | 24520 KB |
test_05.txt | AC | 437 ms | 24484 KB |
test_06.txt | AC | 413 ms | 24048 KB |
test_07.txt | AC | 389 ms | 23804 KB |
test_08.txt | AC | 388 ms | 23596 KB |
test_09.txt | AC | 436 ms | 25332 KB |
test_10.txt | AC | 453 ms | 25784 KB |
test_11.txt | AC | 436 ms | 24704 KB |
test_12.txt | AC | 423 ms | 24132 KB |
test_13.txt | AC | 381 ms | 23856 KB |
test_14.txt | AC | 428 ms | 24880 KB |
test_15.txt | AC | 439 ms | 25552 KB |
test_16.txt | AC | 383 ms | 23876 KB |
test_17.txt | AC | 418 ms | 24948 KB |
test_18.txt | AC | 380 ms | 23832 KB |
test_19.txt | AC | 404 ms | 24176 KB |
test_20.txt | AC | 414 ms | 24860 KB |
test_21.txt | AC | 1041 ms | 47476 KB |
test_22.txt | AC | 1056 ms | 46736 KB |
test_23.txt | AC | 1055 ms | 47916 KB |
test_24.txt | AC | 1027 ms | 47520 KB |
test_25.txt | AC | 1018 ms | 47420 KB |
test_26.txt | AC | 971 ms | 48428 KB |
test_27.txt | AC | 933 ms | 47552 KB |
test_28.txt | AC | 991 ms | 47740 KB |
test_29.txt | AC | 362 ms | 23572 KB |
test_30.txt | AC | 375 ms | 23672 KB |
test_31.txt | AC | 627 ms | 32440 KB |
test_32.txt | AC | 366 ms | 23576 KB |
test_33.txt | AC | 998 ms | 44920 KB |
test_34.txt | AC | 365 ms | 23556 KB |
test_35.txt | AC | 386 ms | 24052 KB |
test_36.txt | AC | 985 ms | 47604 KB |
test_37.txt | AC | 993 ms | 47972 KB |
test_38.txt | AC | 976 ms | 47744 KB |
test_39.txt | AC | 1005 ms | 47756 KB |
test_40.txt | AC | 1042 ms | 47096 KB |
test_41.txt | AC | 923 ms | 45692 KB |
test_42.txt | AC | 1023 ms | 47472 KB |
test_43.txt | AC | 945 ms | 45764 KB |