Acm 非洲小孩

非洲小孩

時間限制:1000 ms  |  內存限制:65535 KB
難度:2
描述
家住非洲的小孩,都很黑。爲什麼呢?
第一,他們地處熱帶,太陽輻射嚴重。
第二,他們不經常洗澡。(常年缺水,怎麼洗澡。)
現在,在一個非洲部落裏,他們只有一個地方洗澡,並且,洗澡時間很短,瞬間有木有!!(這也是沒有的辦法,缺水啊!!)
每個小孩有一個時間段能夠洗澡。並且,他們是可以一起洗的(不管你是男孩是女孩)。
那麼,什麼時間洗澡,誰應該來洗,由誰決定的呢?那必然是他們偉大的“澡”神啊。“澡”神有一個時間表,記錄着該部落的小孩,什麼時候段可以洗澡。現在,“澡”神要問你,一天內,他需要最少開啓和關閉多少次洗澡的水龍頭呢?因爲,開啓和關閉一次水龍頭是非常的費力氣的,即便,這也是瞬間完成的。
輸入
多組數據
第一行一個0<n<=100。
接下來n行,每行一個時間段。H1H1:M1M1-H2H2:M2M2,24小時制。
保證該時間段是在一天之內的。但是,不保證,H1H1:M1M1先於H2H2:M2M2。
輸出
題目描述,“澡”神最少需要開啓和關閉多少次水龍頭呢?
樣例輸入
1
00:12-12:12
2
00:12-12:12
14:00-12:00
樣例輸出
1
1
提示
Ps:開啓和關閉爲一次
上傳者

ACM_張開創


區間選點問題 ,和  找點  的思路一樣。

*****洗澡和開水龍頭都是瞬間完成。

public class _1036_2AC {
	public static void main(String[] args) {
		Scanner scan = new Scanner(new BufferedInputStream( System.in));
		int testNum,left,right;
		int[][] times;
		String data;
		int number = 1;
		while(scan.hasNext()){
			testNum = scan.nextInt();
			times = new int[testNum][2];
			for(int i = 0; i < testNum; ++i){
				data = scan.next();
				data = data.replace(':', '0');
				left = Integer.parseInt(data.split("-")[0]);
				right = Integer.parseInt(data.split("-")[1]);
				if(left < right){
					times[i][0] = left;
					times[i][1] = right;
				}else{
					times[i][1] = left;
					times[i][0] = right;
				}
			}
			int temp;
			for(int i = 0; i < times.length-1; ++i){
				for(int j = i+1; j < times.length; ++j){
					if(times[j][0] < times[i][0] || (times[j][0] == times[i][0] && times[j][1] < times[i][1])){
						temp = times[i][0];
						times[i][0] = times[j][0];
						times[j][0] = temp;
						
						temp = times[i][1];
						times[i][1] = times[j][1];
						times[j][1] = temp;
					}
				}
			}
			int max = times[0][1];
			for(int i = 1; i < times.length; ++i){
				if(times[i][0] > max){
					++number;
					max = times[i][1];
				}else{
					if(times[i][1] < max){
						max = times[i][1];
					}
				}
			}
			System.out.println(number);
			number = 1;
		}
	}
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章