Pagini recente » Cod sursa (job #2045351) | Cod sursa (job #2636617) | Cod sursa (job #2144766) | Cod sursa (job #2216375) | Cod sursa (job #354764)
Cod sursa(job #354764)
#include <fstream>
using namespace std;
ifstream f ("energii.in");
ofstream g ("energii.out");
int n, gg, cant[2000], cost[2000], e[20000];
int v[1001*1001];
void read()
{ f >> n >> gg;
for (int i=1; i<=n; i++)
{ f >> cant[i] >> cost[i];
e[i]=1;
}
}
int min(int x, int y, int & cv)
{ if (x>y && cv==1) { cv=0; return y; }
else return x;
}
void init()
{ for (int i=1; i<=1001*1001; i++)
v[i]=2000000001;
}
void functie()
{ for (int i=1; i<=gg*gg; i++)
for (int j=1; j<=n; j++)
if (cant[j]<=i && (v[i]-v[i-cant[j]]>cost[j]) && e[j]) { v[i]=v[i-cant[j]]+cost[j]; e[j]=0;}
int mini=2000000002;
for (int j=gg-1; j<=gg*gg; j++)
if (v[j]<=mini) mini=v[j];
g << mini;
}
void afis()
{ for (int i=1; i<=gg; i++)
g << v[i] << "\n";
}
int main()
{ read();
init();
functie();
// afis();
return 0;
}