SPOJ – ABA12C – Buying Apples!

#include<stdio.h>
typedef long long ll;
ll min(ll a,ll b)
{
 if(a<=b)
 return a;
 else return b;
}
int main()
{
 ll t,n,k;
 scanf("%lld",&t);
 ll dp[102];
 ll ar[102];
 while(t--)
 {
 scanf("%lld%lld",&n,&k);
 for(ll i=1;i<=k;i++)
 scanf("%lld",&ar[i]);
 for(ll i=1;i<=k;i++)
 dp[i]=-1;
 dp[0]=0;
 for(ll i=1;i<=k;i++)
 {
 for(ll j=1;j<=k;j++)
 {
 if(i>=j)
 {
 if(dp[i]==-1 && dp[i-j]!=-1 && ar[j]!=-1)
 dp[i]=ar[j]+dp[i-j];
 else if(dp[i-j]!=-1 && ar[j]!=-1)
 dp[i]=min(dp[i],ar[j]+dp[i-j]);
 
 }
 }
 }
 if(dp[k]!=-1)
 printf("%lld\n",dp[k]);
 else
 printf("-1\n");
}
return 0;
}

Leave a comment