Pagini recente » Cod sursa (job #1167263) | Cod sursa (job #1273100) | Cod sursa (job #1585265) | Cod sursa (job #1079784) | Cod sursa (job #403392)
Cod sursa(job #403392)
#include<stdio.h>
int g,w,p[10001],c[10001],a[60001],m=999999,car[1001];//v[0][..]energie,v[1][..]costul
struct mat
{
int c,e;
}best[1001][1001];
void read()
{
FILE*f=fopen("energii.in","r");
fscanf(f,"%d%d",&g,&w);
int i;
for(i=0;i<g;++i)
{
fscanf(f,"%d%d",&p[i],&c[i]);
if(p[i]<m)m=p[i];
}
fclose(f);
}
int dinamic()
{
int i,j,ok=1;
a[0]=0;
for(i=1;i<=w;++i)
{
a[i]=99999999;
if(i==15)
printf("DA");
for(j=0;j<g;++j)
{
if(c[j]>=i-p[j]&&(a[i-p[j]]!=c[j]&&i-p[j]!=p[j]||a[i-p[j]]!=c[j]||i-p[j]!=p[j]))//??
{
if(c[j]+a[i-p[j]]<a[i])a[i]=c[j]+a[i-p[j]];
}
}
}
if(a[w]==99999999)return -1;
return a[w];
}
int main()
{
read();
FILE*g=fopen("energii.out","w");
fprintf(g,"%d\n",dinamic());
fclose(g);
return 0;
}