洛谷题单 函数与结构体 Java描述

p5740 最厉害的学生

package Main;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	public static void main(String[] args) throws  IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.valueOf(br.readLine());
		p1[] p = new p1[n];
		for(int i=0;i<n;i++) {
			String[] s=br.readLine().split(" ");
			p[i]=new p1(i,s[0],Integer.valueOf(s[1])+Integer.valueOf(s[2])+Integer.valueOf(s[3]),Integer.valueOf(s[1]),Integer.valueOf(s[2]),Integer.valueOf(s[3]));
		}
		Arrays.sort(p);
		System.out.println(p[0].name+" "+p[0].a+" "+p[0].b+" "+p[0].c);
	}
}
class p1 implements Comparable<p1>{
	int id,a,b,c,score;
	String name;
	p1(int id,String name,int score,int aa,int bb,int cc){
		this.id=id;this.name=name;this.score=score;
		a=aa;b=bb;c=cc;
	}
	@Override
	public int compareTo(p1 o) {
		if(score==o.score) return id-o.id;
		return o.score-score;
	}
}

这个题不用结构体也可以做,也比较简单

import java.util.Scanner;

public class Main {
	 public static void main(String[] args) {
		 Scanner in = new Scanner(System.in);
		 int n = in.nextInt();
		 int[] res = new int[n];
		 int temp;
		 int tag = 0;
		 int max = 0;
		 int[][] scor = new int[n][3];
		 String[] stu = new String[n];
		 for (int i = 0; i < n; i++) {
			stu[i] = in.next();
			temp = 0;
			for(int j = 0; j < 3;j++) {
				scor[i][j] = in.nextInt();
				temp += scor[i][j];
				}
			//System.out.println(temp);
			if(temp > max) {
				max = temp;
				tag = i;
			}
		}
		 System.out.print(stu[tag]+" ");
		 for (int i = 0; i < 3; i++) {
			System.out.print(scor[tag][i]+" ");
		}
	 }
}

p5741 旗鼓相当的对手加强版

package Main;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
	public static void main(String[] args) throws  IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.valueOf(br.readLine());
		p2[] p = new p2[n];
		for(int i = 0;i < n;i++) {
			String[] s = br.readLine().split(" ");
			p[i] = new p2(s[0], Integer.valueOf(s[1]),Integer.valueOf(s[2]),Integer.valueOf(s[3]));
		}
		for (int i = 0; i < p.length; i++) {
			for(int j = i+1;j<n;j++) {
				if(Math.abs(p[i].a-p[j].a) <= 5 && Math.abs(p[i].b-p[j].b) <= 5 && Math.abs(p[i].c-p[j].c) <= 5 
						&& Math.abs(p[i].a+p[i].b+p[i].c-p[j].a-p[j].b-p[j].c) <= 10) {
					System.out.println(p[i].name+" "+p[j].name);
				}
			}
		}
	}
}
class p2{
	String name;
	int a,b,c;
	public p2(String name,int aa,int bb,int cc) {
		this.name = name;
		a = aa;
		b = bb;
		c = cc;
	}
}
	

这种比较大型的输入用Bufferedreader提高速度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值