Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:Discuss区中的所有测试用例全过,但是仍然WA,求大神指点迷津!In Reply To:Discuss区中的所有测试用例全过,但是仍然WA,求大神指点迷津! Posted by:TheIllsionist at 2018-01-30 15:52:45 > import java.util.Scanner; > public class Main{ > public static void main(String args[]) { > Scanner input = new Scanner(System.in); > int N = input.nextInt(); > int T = input.nextInt(); > int[] intervals = new int[T + 1]; //下标代表开始时间,值代表结束时间,如果值为0,代表没有以下标为开始的段 > int num = N; > int maxStart = -1; > while ((--num) >= 0) { > int s = input.nextInt(); > int e = input.nextInt(); > maxStart = Math.max(maxStart, s); > if(e > intervals[s] && e >= s){ > intervals[s] = e; > } > } > if (intervals[1] < 1 || intervals[maxStart] < T) { > System.out.println(-1); > return; > } > int count = 1; //计算总共需要多少牛 > int i = 1; > int e = intervals[i]; > while (++i <= T) { > if (e >= T) { //已覆盖所有时间段,退出 > break; > } > int newE = 0; > while (i <= T && i <= (e + 1)) { > if (intervals[i] > newE) { > newE = intervals[i]; > } > i++; > } > i--; > if (newE == 0) { //中间有断裂情况 > count = -1; > break; > } else { > e = newE; > count++; > } > } > if (e >= T) { > System.out.println(count); > } else { > System.out.println(-1); > } > } > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator