暇すぎたので久しぶりに問題解いてました。久しぶりにやりすぎたせいで、vectorの宣言とか忘れてて、「これもうだめかもわからんね」状態。
今回解いた問題は次の通り。
[blogcard url=”https://atcoder.jp/contests/abc115/tasks/abc115_c”]普通に簡単な問題でしたが、自力で解法を思いつかなかったので、頭わるいなあって思いました。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <vector> | |
#include <algorithm> | |
#include <climits> | |
using namespace std; | |
int main(int argc, char const *argv[]) { | |
int n,k; | |
cin>>n>>k; | |
vector<int> v(n); | |
for(int i=0;i<n;i++){ | |
cin>>v[i]; | |
} | |
sort(v.begin(),v.end()); | |
int min=INT_MAX; | |
for(int i=0;i+k-1<n;i++){ | |
int tmp=v[i+k-1]-v[i]; | |
if(tmp<min) min=tmp; | |
} | |
cout<<min<<endl; | |
return 0; | |
} |
やることは単純、sortして、i番目とi+k番目の差をとって、その最小値を探すだけです。最悪B問題レベルでは・・・?となりましたが、自力で解けなかったので猛省。ちゃんとやります。