Cod sursa(job #68175)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 26 iunie 2007 19:19:45
Problema Shop Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include<stdio.h>
#include<math.h>

int n, c, sol[500], nr;
long long contor;
long long unsigned l;

typedef struct
{
  int a, poz;
  long long b;
} moneda;

moneda v[500];

void citire()
{
  freopen("shop.in","r",stdin);
  freopen("shop.out","w",stdout);
  scanf("%d %d %llu", &n, &c, &l);
  int a;
  long long  b;
  for (int i=1; i<=n; i++)
    {
       scanf("%d %lld",&a, &b);
       v[a].a=a; v[a].b=b;
       v[a].poz=i;
    }
}

void calcul()
{
  int i, j;
  for (i=499; i>=0; i--)
    {
      if (v[i].a>=0 && v[i].b!=0)
	if (pow(c,v[i].a)<=l)
	{
	  nr++;
	  while (pow(c,v[i].a)<=l && v[i].b)
	    {
	      sol[v[i].poz]++;
	      l-=pow(c,v[i].a);
	      v[i].b--;
	      contor++;
	    }
	}
	else sol[v[i].poz]=0;
    }
  printf("%lld\n",contor);
  for (i=1; i<=n; i++)
    printf("%d ",sol[i]);
}

int main()
{
  citire();
  calcul();
  return 0;
}