Cod sursa(job #1422992)

Utilizator ASTELOTudor Enescu ASTELO Data 20 aprilie 2015 18:24:44
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
struct eu{long long ai,bi,poz,nr;};
eu v[31];
long long k,l,m,n,p,c,i,j,sum;
bool s1(eu a,eu b)
    {
    return a.ai>b.ai;
    }
bool s2(eu a,eu b)
    {
    return a.poz<b.poz;
    }
int main ()
{
freopen("shop.in","r",stdin);
freopen("shop.out","w",stdout);
scanf("%lld%lld%lld",&n,&p,&l);
for(i=1;i<=n;i++)
    {
    scanf("%lld%lld",&v[i].ai,&v[i].bi);
    v[i].poz=i;
    }
sort(v+1,v+n+1,s1);
for(i=1;i<=n;i++)
    {
    long long nr=pow(p,v[i].ai);
    if(nr*v[i].bi<=l)
        {
        v[i].nr=v[i].bi;
        l-=nr*v[i].bi;
        sum+=v[i].bi;
        }
    else
        {
        long long q;
        q=l/nr;
        v[i].nr=q;
        l-=nr*q;
        sum+=q;
        }
    }
sort(v+1,v+n+1,s2);
printf("%lld\n",sum);
for(i=1;i<=n;i++)
    printf("%d ",v[i].nr);
return 0;
}