PRoblem Description “今年暑假不AC?” “是的。” “那你干什么呢?” “看世界杯呀,笨蛋!” “@#$%^&*%…”
確實(shí)如此,世界杯來(lái)了,球迷的節(jié)日也來(lái)了,估計(jì)很多ACMer也會(huì)拋開(kāi)電腦,奔向電視了。 作為球迷,一定想看盡量多的完整的比賽,當(dāng)然,作為新時(shí)代的好青年,你一定還會(huì)看一些其它的節(jié)目,比如新聞聯(lián)播(永遠(yuǎn)不要忘記關(guān)心國(guó)家大事)、非常6+7、超級(jí)女生,以及王小丫的《開(kāi)心辭典》等等,假設(shè)你已經(jīng)知道了所有你喜歡看的電視節(jié)目的轉(zhuǎn)播時(shí)間表,你會(huì)合理安排嗎?(目標(biāo)是能看盡量多的完整節(jié)目)
Input 輸入數(shù)據(jù)包含多個(gè)測(cè)試實(shí)例,每個(gè)測(cè)試實(shí)例的第一行只有一個(gè)整數(shù)n(n<=100),表示你喜歡看的節(jié)目的總數(shù),然后是n行數(shù)據(jù),每行包括兩個(gè)數(shù)據(jù)Ti_s,Ti_e (1<=i<=n),分別表示第i個(gè)節(jié)目的開(kāi)始和結(jié)束時(shí)間,為了簡(jiǎn)化問(wèn)題,每個(gè)時(shí)間都用一個(gè)正整數(shù)表示。n=0表示輸入結(jié)束,不做處理。
Output 對(duì)于每個(gè)測(cè)試實(shí)例,輸出能完整看到的電視節(jié)目的個(gè)數(shù),每個(gè)測(cè)試實(shí)例的輸出占一行。
Sample Input 12 1 3 3 4 0 7 3 8 15 19 15 20 10 15 8 18 6 12 5 10 4 14 2 9 0
Sample Output 5
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(sc.hasNext()){ int n = sc.nextInt(); if(n==0){ break; } int a[][]=new int [n][2]; for(int i=0;i<n;i++){ a[i][0]=sc.nextInt(); a[i][1]=sc.nextInt(); } // 對(duì) 節(jié)目結(jié)束時(shí)間進(jìn)行排序, //1: 冒泡排序 maopao(a); //2: 選擇排序 //xuanze(a); //3:插入排序 //charu(a); //printf(a); int s; int count=1; s=a[0][1]; for(int i=1;i<n;i++){ if(a[i][0]>=s){ count++; s=a[i][1]; } } System.out.println(count); } } private static void printf(int[][] a) { for(int i=0;i<a.length;i++){ System.out.println(a[i][0]+" "+a[i][1]); } } private static void charu(int[][] a) { for(int i=0;i<a.length-1;i++){ int temp=a[i+1][1]; int temp2=a[i+1][0]; int j=i; while(a[j][1]>temp){ a[j+1][1]=a[j][1]; a[j+1][0]=a[j][0]; j--; if(j<0){ break; } } a[j+1][1]=temp; a[j+1][0]=temp2; } } private static void xuanze(int[][] a) { for(int i=0;i<a.length-1;i++){ int k=i; for(int j=i+1;j<a.length;j++){ if(a[k][1]>a[j][1]){ k=j; } } int x=a[i][1]; a[i][1]=a[k][1]; a[k][1]=x; int y=a[i][0]; a[i][0]=a[k][0]; a[k][0]=y; } } private static void maopao(int[][] a) { for(int i=0;i<a.length-1;i++){ boolean boo=true; for(int j=0;j<a.length-1-i;j++){ if(a[j][1]>a[j+1][1]){ boo=false; int x=a[j][1]; a[j][1]=a[j+1][1]; a[j+1][1]=x; int y=a[j][0]; a[j][0]=a[j+1][0]; a[j+1][0]=y; } } if(boo){ break; } } }}新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注