⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 project1.java

📁 A solution of contest problem in Google Code Jam
💻 JAVA
字号:
import java.io.*;
import java.util.*;
import java.math.*;

class project1{
	int line=0,index=0,c=1;
	String input;
	StringTokenizer st;
	int Case=0;
	int T=0;
	int t1=0,t2=0; //trip t1=A->B t2=B->A
	int min[][]; 
	int num=0;
	int Hour=0,Min=0;
	String TMP="";
	int retA=0,retB=0,minimumA=Integer.MAX_VALUE,minimumB=Integer.MAX_VALUE;
	public static void main(String args[]) throws Exception{
		project1 file=new project1();
		file.parse();
	}
	/*public void output()throws Exception {
		BufferedWriter wStream=new BufferedWriter( new FileWriter(".\\B-small.out"));
		for(int j=0;j<Case;j++) {  
		wStream.write("Case #"+(j+1)+": "+Math.abs(minimumA)+" "+Math.abs(minimumB));
	        wStream.newLine();   
		}
		wStream.close();
	}*/
	public void result() {
		int temp=0;
		for(int i=0;i<num*2;i++) {
			if(min[1][i]==-1) {
				retA-=1;
			}
			if(min[1][i]==-2) {
				retB-=1;
			}
			if(min[1][i]==1) {
				retB+=1;
			}
			if(min[1][i]==2) {
				retA+=1;
			}
			if(i!=(num*2-1)) {
			if(min[0][i]!=min[0][i+1]) {
			if(retA<minimumA) {
				
				minimumA=retA;
				System.out.println("tminimunA:"+minimumA+"\n");
				}
			if(retB<minimumB) {
				minimumB=retB;
				System.out.println("tminimunB:"+minimumB+"\n");
				}
			
			}
			}
			else {
				if(retA<minimumA) {
					
					minimumA=retA;
					System.out.println("tminimunA:"+minimumA+"\n");
					}
				if(retB<minimumB) {
					minimumB=retB;
					System.out.println("tminimunB:"+minimumB+"\n");
					}
				
				}
		}
		System.out.println("minimunA:"+minimumA+"\n");
		System.out.println("minimumB:"+minimumB+"\n");
		
	}
	public void sort() {
		int i,j;
		int m;//min
		int tmp=0;
	/*	for(i=0;i<num*2;i++) {
			System.out.println("barr:"+min[0][i]+"  "+min[1][i]+"\n");
			}*/
		for(i=0;i<num*2;i++) {
			m=i;
			for(j=i+1;j<num*2;j++)
				if(min[0][j]<min[0][m])m=j;
			tmp=min[0][i];
			min[0][i]=min[0][m];
			min[0][m]=tmp;
			
			tmp=min[1][i];
			min[1][i]=min[1][m];
			min[1][m]=tmp;
		}
		for(i=0;i<num*2;i++) {
			System.out.println("arr:"+min[0][i]+"  "+min[1][i]+"\n");
			}
	}
	public void parse() throws Exception{
		
		BufferedReader br = new BufferedReader(
	            new FileReader("B-large.in"));
		BufferedWriter wStream=new BufferedWriter( new FileWriter(".\\B-small.out"));
//		if(br.ready())
//		{
//			input=br.readLine();
			//st=new StringTokenizer(input);
			//int dim=st.countTokens();
			//for(int i=0;i<dim-1;i++)
			//	double x[][]=new double[4][1000];
			//	double result[]=new double[1000];
//		}
		if((input=br.readLine()) != null) {
			st=new StringTokenizer(input);
			Case=Integer.parseInt(st.nextToken());
		}
		
		while(br.ready())
		 {
			retA=0;
			retB=0;
			minimumA=Integer.MAX_VALUE;
			minimumB=Integer.MAX_VALUE;
			if((input=br.readLine()) != null) {
				st=new StringTokenizer(input);
				T=Integer.parseInt(st.nextToken());
			}
			if((input=br.readLine()) != null) {
				st=new StringTokenizer(input);
				t1=Integer.parseInt(st.nextToken());
				t2=Integer.parseInt(st.nextToken());
				num=t1+t2;
				min=new int[2][num*2];
			}
			line=0;
			index=0;
			for(int k=0;k<num;k++) {
				if((input=br.readLine()) != null) {
					line++;
					st=new StringTokenizer(input);
					TMP=st.nextToken();
					Hour=Integer.parseInt(TMP.substring(0, 2));
					Min=Integer.parseInt(TMP.substring(3, 5));
					//System.out.println("Hour:"+Hour+"\n");
					Min=Min+Hour*60;
					System.out.println("MinStart:"+Min+"\n");
					if(line<=t1){
						min[0][index]=Min;
						min[1][index]=-1;//A
					//	System.out.println("A\n");
						}
					else {
						min[0][index]=Min;
						min[1][index]=-2;//B
					//	System.out.println("B\n");
					}
					index++;
					
					TMP=st.nextToken();
					Hour=Integer.parseInt(TMP.substring(0, 2));
					Min=Integer.parseInt(TMP.substring(3, 5));
					//System.out.println("Hour:"+Hour+"\n");
					Min=Min+Hour*60;
					System.out.println("MinArrive:"+Min+"\n");
					min[0][index]=Min+T;
					if(line<=t1){
						min[1][index]=1;//A
						}
					else {
						min[1][index]=2;//B
					}
					index++;
				}
			}
			sort();
			result();
			wStream.write("Case #"+c+": "+Math.abs(minimumA)+" "+Math.abs(minimumB));
	        wStream.newLine();
	        c++;
			//  R = Integer.parseInt(st.nextToken());
	      //  C = Integer.parseInt(st.nextToken());
			//System.out.println("dim"+st.countTokens());
			
		
			
		 }
		wStream.close();
		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -