Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int a[100];
- int dp[100];
- int main()
- {
- int n, T;
- cin>>n>>T;
- for (int i=0; i<=T; i++)
- dp[i]=100000;
- for (int i=0; i<n; i++)
- {
- cin>>a[i];
- dp[a[i]]=i;
- }
- //COUT
- for(int i=0; i<=T; i++)
- cout<<dp[i]<<' ';
- cout<<endl;
- for (int i=0; i<n; i++) //числа из массива
- for(int k=T; k>=0; k--) //сумма, которую получаем
- {
- cout<<k<<
- dp[k+a[i]]=min(dp[k+a[i]], i);
- }
- //COUT
- for(int i=0; i<=T; i++)
- cout<<dp[i]<<' ';
- cout<<endl;
- int p;
- for (int i=T; i>=0; i--)
- if(dp[i]!=100000)
- {
- p=i;
- cout<<"max sum="<<i<<endl;
- break;
- }
- int i=p;
- while (i!=0)
- {
- cout<<dp[i]<<' ';
- i=dp[i];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement