Cod sursa(job #1867272)

Utilizator SirbuSirbu Ioan Sirbu Data 3 februarie 2017 21:58:49
Problema Shop Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <fstream>
#include <algorithm>

using namespace std;
ifstream fin ("shop.in");
ofstream fout ("shop.out");

struct moneda{
  int val;
  int nr;
  int poz;

}v[35];
int folosinta[35];


long long put(int c,int exp)
{
  long long rez = c;
  if (exp==0) return 1;
  for (int i=2;i<=exp;i++)
    rez*=c;
  return rez;
}

bool cmp (moneda a, moneda b)
{
  return a.val>b.val;
}


int main()
{
  long long L;
  int n,c;
  fin >> n >> c >> L;
  for (int i=1;i<=n;i++)
  {
    fin >> v[i].val >> v[i].nr;
    v[i].poz = i;
  }
  sort (v+1,v+n+1,cmp);
  int i=1;
  long long suma=0;
  while (L)
  {
    long long  putere = put (c,v[i].val);
    long long val;
    if (L/putere > v[i].nr) val = v[i].nr;
    else val = L/putere;
    L = L - putere*val;
    folosinta[v[i].poz]=val;
    suma+=val;
    i++;
  }
  fout << suma << "\n";
  for (int j=1;j<=n;j++)
    fout << folosinta[j] << " ";
}