Cod sursa(job #1977067)

Utilizator infomaxInfomax infomax Data 4 mai 2017 22:29:24
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream F("shop.in");
ofstream G("shop.out");

int n, c, sol[35];
long long l, p = 1, s, k;
pair<int, pair<int,int> > v[35];

int main()
{
    F >> n >> c >> l;
    for(int i = 0; i < n; ++ i)
        F >> v[i].first >> v[i].second.first, v[i].second.second = i;
    sort(v, v + n);
    int put = v[n - 1].first;
    for(int i = 1; i <= put; ++ i)
        p *= c;
    int j;
    for(int i = n - 1; i > -1 && s < l; -- i)
    {
        j = 0;
        while(put > v[i].first)
            p /= c, put --;
        while(j < v[i].second.first && p + s <= l)
            s += p, ++ j, ++ k;
        sol[v[i].second.second] = j;
    }
    G << k << '\n';
    for(int i = 0; i < n; ++ i)
        G << sol[i] << " ";
    return 0;
}