Pagini recente » Istoria paginii runda/4_ian_2014 | simulare.wellspecial2 | Istoria paginii runda/sim_10_2016_2 | Istoria paginii runda/pauloji_2010 | Cod sursa (job #1409764)
#include <iostream>
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
long long n,c,l,v[30],w[100],m[30],o[30];
int main()
{
int i,j,aux,ok=0;
f>>n>>c>>l;
for(i=1;i<=n;i++) {f>>v[i]>>w[i];o[i]=i;}
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
if(v[i]<v[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
aux=w[i];
w[i]=w[j];
w[j]=aux;
aux=o[i];
o[i]=o[j];
o[j]=aux;
}
for(i=1;i<=n;i++) v[i]=pow(c,v[i]);
//for(i=1;i<=n;i++) g<<v[i]<<" "<<w[i]<<'\n';
int u=1,k=0;
while(l)
{
for(i=1;i<=n;i++)
{
k=0;
while(k==0)
if(l!=0)
if(v[i]*w[i]<=l) {l=l-v[i]*w[i];ok=ok+w[i];m[i]=w[i]; k=1;}
else {w[i]--; k=0;}
if(w[i]==0) k=1;
}
}
g<<ok<<'\n';
for(i=1;i<=n;i++)
for(j=i;j<=n;j++)
if(o[i]>o[j])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
aux=w[i];
w[i]=w[j];
w[j]=aux;
aux=o[i];
o[i]=o[j];
o[j]=aux;
aux=m[i];
m[i]=m[j];
m[j]=aux;
}
for(i=1;i<=n;i++) g<<m[i]<<" ";
f.close();
g.close();
return 0;
}