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]
};
                [ Ziklon - WInfTc ]

-- 
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