/* * @FileName: D:\代码与算法\2017训练比赛\百度之星\1003-2.cpp * @Author: Pic * @Date: 2017-08-05 17:14:04 * @Last Modified time: 2017-08-05 19:51:35 */ #include #include #include #include #include using namespace std; struct node { int k,p; }mo[1000+30]; int a[100000+30],b[100000+30]; int dp[1000+3][10+3]; int main(){ //freopen("data.in","r",stdin); int n,m; while(~scanf("%d%d",&n,&m)){ int maxb=-1; for(int i=0;imaxb) flag=1; } if(!flag) { cout<<-1<i){ dp[i][j]=min(dp[i][j],mo[k].k); } else{ dp[i][j]=min(dp[i][j],dp[i-mo[k].p+j][j]+mo[k].k); } } } } long long res=0; for(int i=0;i