Coder-Strike 2014 - Round 1B: Network Configuration
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分くらいで解けるようになりたい。
そのためにもやはり英語力を底上げする必要がある。