底辺大学生の奮闘プログラミング+α

プログラミング初心者が毎日書いたコードを載せたりします。競技プログラミングにも随時参加します。

Coder-Strike 2014 - Round 1B: Network Configuration


Problem - B - Codeforces


2問目

1問目より簡単だったと思われる。

こちらも読解に時間がかかったのが敗因


・問題

R1カンパニーにはN個のコンピュータがあり、それらのコンピュータにはそれぞれのデータ送信速度a(1~N)が設定されている。

このとき少なくともK個のコンピュータを同じ速度、また最大の速度で、動作させる必要がある。

データ送信速度の最も高いパソコンのデータ送信速度は任意の値に下げることができるとき、

R1カンパニーが動作させることができる最大のデータ送信速度を求めよ。


・解法

データ送信速度の上からk個を同じ値にすればいいので、
aの配列をソートして、値が上からk番目に高い要素を出力してやればよい。


・ソースプログラム

import java.util.Arrays;
import java.util.Scanner;

public class B {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int k = sc.nextInt();
		int[] a = new int[n];
		
		for(int i=0; i<n; i++){
			a[i] = sc.nextInt();
		}
		
		Arrays.sort(a);
		System.out.println(a[n-k]);
		sc.close();
	}
}


こういう問題は5分くらいで解けるようになりたい。

そのためにもやはり英語力を底上げする必要がある。