九度论坛-1007

注意:对国家进行排序时,只对要求的国家进行排序就行了

/**
 * 文件名:Main.java
 *
 * 版本信息:
 * 日期:2013-6-26
 * Copyright Corporation 2013
 * 版权所有
 *
 */
package 题目1007;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
 *
 * 项目名称:arithmetic
 * 类名称:Main
 * 类描述:
 * 创建人:黄传聪
 * 创建时间:2013-6-26 下午12:49:28
 * 修改人:黄传聪
 * 修改时间:2013-6-26 下午12:49:28
 * 修改备注:
 * @version
 *
 */
public class Main {

	private double goldNum; //金牌数
	private double medal; //奖牌数
	private double persons; //人口数
	private double gp; // 金牌人口比例 
	private double mp; //奖牌人口比例 
	private int min0; //最小排名
	private int min1; //最小排名
	private int min2; //最小排名
	private int min3; //最小排名
	
	private int method0; //使得排名最小的排名方式
	private int method1; //使得排名最小的排名方式
	private int method2; //使得排名最小的排名方式
	private int method3; //使得排名最小的排名方式
	private int id;
	
	public Main(){
		this.min0 = 1;
		this.min1 = 1;
		
		this.min2 = 1;
		this.min3 = 1;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int countries ;
		int sortNum;
		
		List<Main> country = null;
		Scanner scanner = new Scanner(System.in);
		
		Main main = null;
		while(scanner.hasNext()){
			countries = scanner.nextInt();
			if(countries == 0){
				break;
			}
			sortNum = scanner.nextInt();
			int[] sortArrays = new int[sortNum];
			country = new ArrayList<Main>();
			int i,j;
			for(i=0;i<countries;i++){
				
				main = new Main();
				main.goldNum = scanner.nextInt();
				main.medal = scanner.nextInt();
				main.persons = scanner.nextInt();
				main.gp = main.goldNum / main.persons;
				main.mp = main.medal / main.persons;
				main.id = i;
				country.add(main);
			}
			
			for(i=0;i<sortNum;i++){
				sortArrays[i] = scanner.nextInt();
			}
			sort(country,sortArrays);
			
		}
		
	}
	
	public static void sort(List<Main> list, int[] sortArray){
		int i,j;
		List<Main> tempList = new ArrayList<Main>();
//		提出sortArray中不包含的国家
		for(i=0;i<sortArray.length;i++){
			for(j=0;j<list.size();j++){
				if(list.get(j).id == sortArray[i]){
					tempList.add(list.get(j));
				}
			}
		}
		
		
//		分别使用四种方式进行排名
//		按照金牌总数排名

		for(i=0;i<tempList.size();i++){
			Main temp = tempList.get(i);
			temp.method0 = 1;
			for(j=0;j<tempList.size();j++){
				if(temp.goldNum < tempList.get(j).goldNum){
					temp.min0++;
				}
			}
		}
		
		
//		使用第二种方法
		for(i=0;i<tempList.size();i++){
			Main temp = tempList.get(i);
			temp.method1 = 2;
			for(j=0;j<tempList.size();j++){
				if(temp.medal < tempList.get(j).medal){
						temp.min1 ++;
				}
			}
		}
		for(i=0;i<tempList.size();i++){
			Main temp = tempList.get(i);
			temp.method2 = 3;
			for(j=0;j<tempList.size();j++){
				if(temp.gp < tempList.get(j).gp){
						temp.min2++;
				}
			}
		}
		for(i=0;i<tempList.size();i++){
			Main temp = tempList.get(i);
			temp.method3 = 4;
			for(j=0;j<tempList.size();j++){
				if(temp.mp < tempList.get(j).mp){
					temp.min3++;
				}
			}
		}
		
//		for(i=0;i<tempList.size();i++){
//			System.out.println(tempList.get(i).min0 + " " + tempList.get(i).min1 + " " + tempList.get(i).min2 + " " + tempList.get(i).min3);
//		}
		
		for(i=0;i<sortArray.length;i++){
			Main main = tempList.get(i);
			
			int a0 = main.min0;
			int a1 = main.min1;
			int a2 = main.min2;
			int a3 = main.min3;
			
			int min1 = -1,min2 = -1,min = -1;
			
			if(a0<=a1){
				min1 = a0;
			}else{
				min1 = a1;
			}
			if(a2<=a3){
				min2 = a2;
			}else{
				min2 = a3;
			}
			
			if(min1<=min2){
				min = min1;
			}else{
				min = min2;
			}
			if(min == a0){
				System.out.println(a0 + ":" + main.method0);
			}else if(min == a1){
				System.out.println(a1 + ":" + main.method1);
			}else if(min == a2){
				System.out.println(a2 + ":" + main.method2);
			}else if(min == a3){
				System.out.println(a3 + ":" + main.method3);
			}
			
		}
		System.out.println();
	}


}

你可能感兴趣的:(九度论坛-1007)