Cod sursa(job #660964)

Utilizator tzipleatudTudor Tiplea tzipleatud Data 13 ianuarie 2012 15:35:19
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <fstream>
#include <algorithm>

using namespace std;

ifstream f("shop.in");
ofstream g("shop.out");

long long lgpow (long long b,long long p) {
  long long x,r;
  for (x=b,r=1;p>0;p>>=1) {
    if ((p & 1) !=0)
        r=r*x;
    x=x*x;
  }
  return r;
}
struct mon {
    long long v,d;
};
mon a[31];
long long n,l,c,ANS,VANS[31],p,i;
long long r[31];
bool comp(int x,int y) {
    return a[x].v>a[y].v;
}
int main () {
    f >> n >> c >> l;
    for (i=1;i<=n;i++) {
        f >> a[i].v >> a[i].d;
        a[i].v=lgpow(c,a[i].v);
        r[i]=i;
    }
    sort(r+1,r+n+1,comp);
    for (i=1;i<=n && l>0;i++) {
         p=min(l/a[r[i]].v,a[r[i]].d);
         l-=p*a[r[i]].v;
         ANS+=p;
         VANS[r[i]]=p;
    }
    g << ANS << '\n';
    for (i=1;i<=n;i++) g << VANS[i] << ' ';
    g << '\n';
    f.close();g.close();
    return 0;
}