Cod sursa(job #68188)

Utilizator FlorianFlorian Marcu Florian Data 26 iunie 2007 20:53:35
Problema Shop Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.28 kb
#include<stdio.h>
#include<stdlib.h>
long long l;
long c,n;
FILE*f=fopen("shop.in","r");
FILE*g=fopen("shop.out","w");
typedef struct
        {
        long x,y,z;
        }element;
element a[100];
long ii[100];
void read()
        {
        fscanf(f,"%ld %ld %ld",&n,&c,&l);
        for(int i=0;i<n;++i)
               { fscanf(f,"%ld %ld",&a[i].x,&a[i].y);
                 a[i].z=i;
                 }
        }
int intcmp(const void *a, const void *b)
        {
        return *(int*)a-*(int*)b;
        }
long viz[100];
int calcul()
        {
        long long k=0,s=0,sol=0,p;
        long i,j;
        qsort(a,n,sizeof(a[0]),intcmp);
        i=n-1;
        while(s!=l&&i>=0)
                {
                j=1;
                p=1;
                while(j<=a[i].x) {p*=c;j++;}
                j=0;
                while(j<a[i].y&&s+p<=l)
                        {
                         s+=p;
                         j++;
                         }
                k++;
                viz[a[i].z]=j;
                sol+=j;
                i--;
                  }
        fprintf(g,"%lld\n",sol);
        for(i=0;i<n;++i) fprintf(g,"%ld ",viz[i]);
        }
int main()
        {
        read();
        calcul();
        return 0;
        }