Level 1 | Level 2 | Level 3 | |
---|---|---|---|
Div 1 | Level 2 | Level 3 | |
Div 2 | Level 1 | Level 3 |
Tutorials:
Division One - Level Three:
Solution
Source Code:
Division One - Level Two:
Solution
Source Code:
Division One - Level One:
Solution
The same with Div2 Level2.
Source Code:
Sivision Two - Level Three:
Solution
Source Code:
Division Two - Level Two:
Solution
Follow the tutorials from TC, and use greedy algorithms to implement.
Source Code:
//Sat Jul 30 17:46:03 CDT 2011#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
using namespace std;
class FanFailure {
public:
vector <int> getRange(vector <int>, int);
};
vector <int> FanFailure::getRange(vector <int> cap, int minC) {
int N = cap.size();
sort(cap.begin(), cap.end());
vector<int> ret(2, 0);
ret[0] = 0;
ret[1] = N;
for(int i=0; i<=N; i++){
int sum1 = 0;
int sum2 = 0;
for(int j=0; j<N; j++) if(j>=i) sum1 += cap[j];
for(int j=0; j<N; j++) if(j<N-i) sum2 += cap[j];
if(sum1 >= minC) ret[0] = max(ret[0], i);
if(sum2 < minC) ret[1] = min(ret[1], i-1);
}
return ret;
}
//Powered by [KawigiEdit] 2.0!
No comments :
Post a Comment