Pagini recente » Cod sursa (job #1767426) | Cod sursa (job #2897078) | Cod sursa (job #1371112) | Rating Mihai Dumitrescu (slayerdme) | Cod sursa (job #1786239)
#include <stdio.h>
#include <ctype.h>
#define min(a,b) (a<b && a)? a:b
#define BUF_SIZE 4008
FILE *fin,*fout;
char buf[BUF_SIZE];
int pos=BUF_SIZE,d[1002],max;
inline char getch()
{
if(pos==BUF_SIZE)
fread(buf,BUF_SIZE,1,fin),pos=0;
return buf[pos++];
}
inline int read()
{
char ch=getch();
int x=0;
while(!isdigit(ch))
ch=getch();
do
{
x=x*10+ch-'0';
ch=getch();
} while(isdigit(ch));
return x;
}
int main()
{
fin=fopen("energii.in","r");
fout=fopen("energii.out","w");
int g,w,i,e,c,j;
g=read();w=read();
for(i=0;i<g;i++)
{
e=read();c=read();
max=min(max+e,w);
for(j=max;j>=e;j--)
d[j]=min(d[j],d[j-e]+c);
for(;j;j--)
d[j]=min(d[j],c);
}
if(d[w])
fprintf(fout,"%d",d[w]);
else
fprintf(fout,"-1");
fclose(fin);
fclose(fout);
return 0;
}