Pagini recente » Cod sursa (job #807940) | Cod sursa (job #1710602) | Cod sursa (job #371312) | Cod sursa (job #1067515) | Cod sursa (job #1874506)
#include <bits/stdc++.h>
#define nmax 1005
using namespace std;
struct numere
{
int energie;
int cost;
}num[nmax];
int g, p;
int raspuns;
bool cmp(numere a, numere b)
{
if(a.cost==b.cost)
return a.energie>b.energie;
return a.cost<b.cost;
}
void citire()
{
scanf("%d%d", &g, &p);
for(int i=1;i<=g;i++)
{
int x, y;
scanf("%d%d", &x, &y);
num[i].energie=x;
num[i].cost=y;
}
}
void rezolvare()
{
for(int i=1;i<=g;i++)
{
if(num[i].energie>=p)
{
raspuns=num[i].cost;
break;
}
}
int rasp=0;
int val=0;
int last=0;
for(int i=1;i<=g&&val<p;i++)
{
val+=num[i].energie;
rasp+=num[i].cost;
last=i;
}
for(int i=1;i<last;i++)
{
if(val-num[i].energie>=p)
{
val-=num[i].energie;
rasp-=num[i].cost;
}
else
break;
}
raspuns=rasp<raspuns?rasp:raspuns;
}
void afisare()
{
printf("%d\n", raspuns);
}
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
citire();
rezolvare();
afisare();
return 0;
}