Cod sursa(job #2563978)

Utilizator gafton_ioanGafton Ioan Alecsandru gafton_ioan Data 1 martie 2020 16:37:24
Problema Shop Scor 60
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>

using namespace std;

ifstream in("shop.in");
ofstream out("shop.out");

short n,c,a,ord[31];
int nr[31],mon=0,val[31],d;
long long l;

int main()
{
int i,j;
in>>n>>c>>l;
for(i=1;i<=n;++i)
{
    in>>a>>nr[i];
    val[i]=pow(c,a);
    ord[i]=i;
}
bool s = 0;
  while(!s)
  {
    s = 1;
    for(i = 1; i < n; ++i)
      if(val[i] < val[i + 1])
      {
        s = 0;
        swap(nr[i], nr[i + 1]);
        swap(val[i], val[i + 1]);
        swap(ord[i], ord[i + 1]);
      }
  }
  for(i = 1; i <= n; ++i)
  {
    d = l/val[i];
    if(d > nr[i])
    {
      l = l - nr[i] * val[i];
      mon += nr[i];
    }
    else
    {
      nr[i] = d;
      l = l - d * val[i];
      mon += d;
    }
  }
  s = 0;
  while(!s)
  {
    s = 1;
    for(i = 1; i < n; ++i)
      if(ord[i] > ord[i + 1])
      {
        s = 0;
        swap(nr[i], nr[i + 1]);
        swap(ord[i], ord[i + 1]);
      }
  }
out<<mon<<endl;
for(i=1;i<=n;++i)
    out<<nr[i]<<" ";
    return 0;
}