Cod sursa(job #1990648)

Utilizator andrei20003Ionescu Andrei andrei20003 Data 12 iunie 2017 21:39:28
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<stdio.h>

long long nr,sol[100000],a,min,max,val,n,c,l,i,x,y,m[3][100000];


int main(){

    FILE *f=fopen("shop.in","r");
    FILE *g=fopen("shop.out","w");
    fscanf(f,"%lld %lld %lld",&n,&c,&l);
    for(i=1;i<=n;i++){
        fscanf(f,"%lld %lld",&x,&y);
        m[1][x]=y;
        m[2][x]=i;
        if(x>max)
            max=x;
    }
    val=1;
    m[0][0]=1;
    for(i=1;i<=max;i++)
        val*=c,m[0][i]=val;
    i=max;
    while(l!=0) {
        while(m[1][i]==0)
            i--;
        a=l/m[0][i];
        if(a<m[1][i])
            min=a;
        else
            min=m[1][i];
        nr+=min;
        l-=m[0][i]*min;
        sol[m[2][i]]=min;
        i--;
    }
    fprintf(g,"%lld\n",nr);
    for(i=1;i<=n;i++)
        fprintf(g,"%lld ",sol[i]);
    return 0;
}