zoukankan      html  css  js  c++  java
  • (Java实现) 洛谷 P1781 宇宙总统

    题目背景
    宇宙总统竞选

    题目描述
    地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。

    输入输出格式
    输入格式:
    president.in

    第一行为一个整数n,代表竞选总统的人数。

    接下来有n行,分别为第一个候选人到第n个候选人的票数。

    输出格式:
    president.out

    共两行,第一行是一个整数m,为当上总统的人的号数。

    第二行是当上总统的人的选票。

    输入输出样例
    输入样例#1:
    5
    98765
    12365
    87954
    1022356
    985678
    输出样例#1:
    4
    1022356

    import java.util.Scanner;
    
    
    public class yuzhouzongtong {
    	public static void main(String[] args) {
    		Scanner sc = new Scanner(System.in);
    		int n = sc.nextInt();
    		String x[] = new String[n + 1];
    		for (int i = 1; i <= n; i++) {
    			x[i] = sc.next();
    		}
    		int b = 1;   //表示所在的位置编号
    		String c = x[1];  //表示所在编号的投票数的字符串形式(有的数据太过庞大,毕竟的在宇宙投票)
    		int h = x[1].length();  //用于初步判断数据大小
    		for (int i = 1; i < n; i++) {   //遍历比较选出最大的数据
    			if (h > x[i + 1].length()) {
    				continue;
    			}
    			if (h < x[i + 1].length()) {
    				c = x[i + 1];
    				b = i + 1;
    				h = x[i + 1].length();
    			}
    			if (h == x[i + 1].length()) {  //如果长度相同就从左边遍历比较谁的数字大就整体大
    				char j[] = c.toCharArray();
    				char k[] = x[i + 1].toCharArray();
    				for (int f = 0; f < h; f++) {
    					if (j[f] < k[f]) {
    						c = x[i + 1];
    						b = i + 1;
    						h = x[i + 1].length();
    						break;
    					}
    					if (j[f] > k[f]) {   //此题没考虑有多个最大投票的人
    						break;
    					}
    				}
    			}
    
    		}
    		System.out.println(b);
            System.out.println(c); 
    	}
    
    }
    
    
  • 相关阅读:
    Java 字符串总结
    782B The Meeting Place Cannot Be Changed(二分)
    初学hash
    Codeforces Round #395 C. Timofey and a tree
    Java集合之ArrayList
    CA Loves GCD (BC#78 1002) (hdu 5656)
    hdu 5661 Claris and XOR
    hdu 5945 Fxx and game
    pay包注释(二)
    编程风格
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948898.html
Copyright © 2011-2022 走看看