Pagini recente » Cod sursa (job #1478705) | Cod sursa (job #1424922) | Cod sursa (job #2258368) | Cod sursa (job #1040885) | Cod sursa (job #1549368)
#include <iostream>
#include <fstream>
using namespace std;
int i,G,W,mi=10001,q=0,j,a,b,k=0,ok=1;
long e[1001],c[1001];
int main()
{
ifstream f("energii.in");
ofstream g("energii.out");
f>>G;
f>>W;
e[0]=c[0]=0;
for(i=1;i<=G;i++)
{
f>>a;
f>>b;
if(a>=W)
{
if(b<mi)
{
mi=b;
k=1;
}
}
else
{
q++;
e[q]=e[q-1]+a;
c[q]=c[q-1]+b;
}
}
if(e[q]>=W)
{
for(i=1;i<q;i++)
{
for(j=i+1;j<=q;j++)
if((e[j]-e[i-1])>=W and (c[j]-c[i-1])<mi)
mi=c[j]-c[i-1];
for(ok=2;ok<=q-i;ok++)
{
for(j=i+ok;j<=q;j++)
if((e[j]-e[i-1]-e[j-1]+e[i])>=W and (c[j]-c[i-1]-c[j-1]+c[i])<mi)
mi=c[j]-c[i-1];
for(j=i+ok;j<=q;j++)
if((e[j]-e[i-1]-e[i+ok-1]+e[i])>=W and (c[j]-c[i-1]-c[i+ok-1]+c[i])<mi)
mi=c[j]-c[i-1]-c[i+ok-1]+c[i];
for(j=i-ok;j>=1;j--)
if((e[j]-e[i-1]-e[i-ok-1]+e[i-1])>=W and (c[j]-c[i-1]-c[i-ok-1]+c[i-1])<mi)
mi=c[j]-c[i-1]-c[i-ok-1]+c[i-1];
}
}
g<<mi;
}
else
{
if(k==1)
g<<mi;
else
g<<-1;
}
return 0;
}