CCF买菜 java

零分答案,写的真是让我开(难)心(过)极了!!=.=
以后再纠错吧。。。。。。。

5月7号来更错。。
以下是满分答案:

import java.util.*;
public class 买菜 {
public static void main(String[] args) {
	Scanner in=new Scanner(System.in);
	int n=in.nextInt();
	int[][]time=new int[n*2][];
	for(int i=0;i<time.length;i++){
		time[i]=new int[2];
		for(int j=0;j<2;j++)
			time[i][j]=in.nextInt();
	}
	sort(time);
	/*sort之后的结果集
			 * 1 3 
                2 4 
                5 6 
                5 7 
                9 13 
                10 11
                13 14
                14 15
			 */
	/*for(int i=0;i<time.length;i++){
	System.out.println(time[i][0]+" "+time[i][1]+" "+flag[i]);
}*/

System.out.println(chattime(time);
		
}
public static void sort(int[][]time){
	int[]temp1=new int[2];
	for(int i=0;i<time.length-1;i++){
		for(int j=0;j<time.length-1-i;j++){
			if(time[j][0]>time[j+1][0]){
				temp1=time[j+1];
				time[j+1]=time[j];
				time[j]=temp1;
			}	
			if(time[j][0]==time[j+1][0]){
				if(time[j][1]>time[j+1][1]){
					int temp2=time[j+1][1];
					time[j+1][1]=time[j][1];
					time[j][1]=temp2;
				}
			}
		}
	}
}

	public static int chattime(int[][] time) {
		int talknum = 0;
		for (int i = 0; i < time.length - 1; i++) {//把这个和之后的比较
			for(int j=i+1;j<time.length;j++){
				if(time[i][1]<=time[j][0])break;//例如排序之后的 2 4 、5 6,因为5>4,所以就跳出内层循环,再从5 6开始,将之后的组合和他进行比较。 
				else{
					if(time[j][1]<=time[i][1]){
						talknum+=time[j][1]-time[j][0];
					}else{
						talknum+=time[i][1]-time[j][0];
					}
				}
			}
		
		}

	return talknum;
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值