Cod sursa(job #2432001)

Utilizator mirceatlxhaha haha mirceatlx Data 21 iunie 2019 15:47:52
Problema Shop Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <algorithm>
#include <cmath>
using namespace std;
ifstream fin("shop.in");
ofstream fout("shop.out");

int N,C,L,nrm = 0;
struct mond
{
    long long val,nr;
    int used = 0;
    int first;
};
mond v[35];

void Read()
{
    int x;
    fin>>N>>C>>L;
    for(int i = 1;i<=N;i++)
    {
        fin>>x>>v[i].nr;
        v[i].val = pow(C,x);
        v[i].first = i;
    }
}

bool CMP(mond a,mond b)
{
    return a.val > b.val;
}

bool CMP1(mond a,mond b)
{
    return a.first < b.first;
}

void Sorting()
{
    sort(v+1,v+N+1,CMP);
}

void Sorting1()
{
    sort(v+1,v+N+1,CMP1);
}
void Print()
{
    fout<<nrm<<"\n";
    for(int i =1 ;i<=N;i++)
        fout<<v[i].used<<" ";
}

void Solve()
{
    for(int i =1;i<=N;i++)
    {
        v[i].used = min(L/v[i].val,v[i].nr);
        nrm=nrm+v[i].used;
        L=L-v[i].used*v[i].val;
    }
}

int main()
{
    Read();
    Sorting();
    Solve();
    Sorting1();
    Print();
    return 0;
}