My solution

#include <vector>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <cstring>
#define all(v) (v).begin(),(v).end()
#define sz size()
#define REP(i,a,b) for(int i=int(a);i<int(b);i++)
#define fill(x,i) memset(x,i,sizeof(x))
#define foreach(c,it) for(__typeof((c).begin()) it=(c).begin();it!
=(c).end();it++)
using namespace std;
bool orden(pair<int,int> p, pair<int,int>q){
        if(p.first!=q.first)return p.first>q.first;
        return p.first<q.first;
}
class Bonuses {
public:vector <int> getDivision(vector <int> points) {
                int sum=0;
                int acu=0,cur,N=points.sz;
                vector<int> ans;
                vector<pair<int,int> > vp;
                REP(i,0,N)
                        vp.push_back(make_pair(points[i],i));
                sort(all(vp),orden);
                REP(i,0,points.sz)sum+=points[i];
                REP(i,0,points.sz){
                        cur=points[i]*100/sum;
                        acu+=cur;
                        ans.push_back(cur);
                }
                int pos=0;
                while(acu<100){
                        ans[vp[pos].second]++;
                        acu++;
                        pos++;
                }
                return ans;
        }
        //Powered by [Ziklon]
};

-- 
You received this message because you are subscribed to the Google Groups 
"google-codejam" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-code?hl=en.

Reply via email to