Cod sursa(job #2002416)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 19 iulie 2017 20:03:10
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.21 kb
#include <cstdio>
int n,c;
long long b[80],p[80],fol[80];
long long arr[80];
unsigned long long l;
void desc(unsigned long long nr)
{

     int pos=0;
     while(nr!=0)
     {
                 b[pos]=nr%c;
                 nr/=c;
                 pos++;
     }
}
int main()
{
    FILE *fin;
    fin=fopen ("shop.in","r");
    freopen ("shop.out","w",stdout);
    fscanf(fin,"%d%d%llu",&n,&c,&l);
    long long int bx;
    for(int i=1;i<=n;i++)
    {
            fscanf(fin,"%d%lld",&arr[i],&bx);
            p[arr[i]]=bx;
    }
    desc(l);
    for(int i=70;i>=0;i--)
    {
            if(b[i]!=0)
            {
                       if(b[i]>=p[i])
                       {
                                    b[i]-=p[i];
                                    fol[i]+=p[i];
                                    if(i!=0) b[i-1]+=c*b[i];
                       }
                       else
                       {
                           fol[i]=b[i];
                       }
            }
    }
    long long sum=0;
    for(int i=1;i<=n;i++) sum+=fol[arr[i]];
    printf("%lld\n",sum);
    for(int i=1;i<=n;i++)
    {
            printf("%lld ",fol[arr[i]]);
    }
    fclose(fin);
}