忍者ブログ
26 April

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

23 December

SRM601 div2 easy

問題文

http://community.topcoder.com/stat?c=problem_statement&pm=12858

bags[]の要素はそれぞれマンダリンオレンジの個数を表している。
このうちK個のbagsを友達に配る。
できるだけ公平に配るときに、一番多い人と一番少ない人の差を求めよ。

解法

ソートしてK番先の要素との差出して、最小をとる。


#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<climits>
#include<algorithm>

using namespace std;

class WinterAndMandarins{
public:
	int getNumber(vector <int> bags, int K){
	
		sort(bags.begin(),bags.end());
		int ret=INT_MAX;
		
		for(int i=0;i<=bags.size()-K;i++){
			ret = std::min(ret,bags[i+K-1]-bags[i]);
		}
		return ret;
	}
};

PR