頭良くなりたい人

文系大学生shadeのブログです。競技プログラミングや人文学の話題,受験ネタなど。

ABC115 C - Christmas Eve

問題はこちら atcoder.jp

方針

h_i を昇順ソートすると,求める最小値は,h_{K} - h_{1}, h_{K+1} - h_{2}, ...,h_{N} - h_{N-K+1} のうち最も小さい値です。

コード

#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0; i<(n); i++)
#define ALL(n) begin(n),end(n)
 
int main(){
    int n,k;
    cin>>n>>k;
 
    vector<int> h(n);
    REP(i,n){
        cin>>h[i];
    }
    sort(ALL(h));
 
    int d,d_min;
    REP(i,n-k+1){
        d=h[i+k-1]-h[i];
        if(i==0){
            d_min=d;
        }else{
            if(d<d_min){
                d_min=d;
            }
        }
    }
 
    cout<<d_min<<endl;
}