Cod sursa(job #1220945)

Utilizator TarabanDragosTaraban Dragos-Petru TarabanDragos Data 19 august 2014 04:10:06
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<cstdio>
#include<algorithm>
using namespace std;
long long n,c,l,i,j,p[100],nr,v[100];
FILE *f,*g;
struct val{
    long long v;
    long long a;
    long long poz;
}x[100];
int cmp(val a, val b){
    return a.v>b.v;
}
int minim(int a,int b){
    if(a<b)
        return a;
    return b;
}
int main(){
    f=fopen("shop.in","r");
    g=fopen("shop.out","w");
    fscanf(f,"%lld%lld%lld",&n,&c,&l);
    nr=0;
    p[0]=1;
    while(p[nr]<=l&&nr<=34){
        p[++nr]=p[nr-1]*c;
    }
    for(i=1;i<=n;i++){
        fscanf(f,"%lld%lld",&x[i].v,&x[i].a);
        x[i].poz=i;
    }
    nr=0;
    sort(x+1,x+n+1,cmp);
    for(i=1;i<=n;i++){
        j=minim(l/p[x[i].v],x[i].a);
        nr+=j;
        l-=j*p[x[i].v];
        v[x[i].poz]+=j;
    }
    fprintf(g,"%lld\n",nr);
    for(i=1;i<=n;i++){
        fprintf(g,"%lld ",v[i]);
    }



    fclose(f);
    fclose(g);
    return 0;
}