Cod sursa(job #2073116)

Utilizator Vlad_lsc2008Lungu Vlad Vlad_lsc2008 Data 22 noiembrie 2017 18:39:07
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

int n,c;
long long l;
struct mon { long long p, cnt,sol;
} m[31];
int pw[33];
int poz[31];
int sol[33];

int mycomp(mon a, mon b)
{
    return a.p<b.p;
}

int main()
{
    ifstream t1("shop.in");
    ofstream t2("shop.out");
    t1>>n>>c>>l;
    int i;
    long long a,b;
    for(i=1;i<=n;i++)
    {
        t1>>m[i].p>>m[i].cnt;
        poz[ m[i].p] =i;
    }
    long long put=1;
    i=0;
    while(put<l)
    {
        pw[i]=put;
        put*=c;
        i++;
    }
    sort(m+1,m+n+1,mycomp);
    long long  nr=0;
    for(i=n;i>=1;i--)
    {
        if( pw[ m[i].p ] && pw[ m[i].p ]<=l )
        {
            m[i].sol= min ( l/ pw [ m[i].p ] , m[i].cnt );
            l-= m[i].sol*pw[ m[i].p ];
            nr+=m[i].sol;
        }
    }
    for(i=1;i<=n;i++)
        sol[ poz[ m[i].p  ] ] = m[i].sol ;
    t2<<nr<<'\n';
    for(i=1;i<=n;i++) t2<<sol[i]<<' ';
    t1.close();
    t2.close();
    return 0;
}