Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <string.h>#include <vector>#include <iostream>using namespace std;int n, m, a[101], p[101][101], s, t, used[101];vector<int> v[101];void dfs(int k){for(int i=0; i<v[k].size(); ++i){if(used[v[k][i]])continue;used[v[k][i]] = 1;dfs(v[k][i]);for(int j=m; j>0; --j){for(int x=j; x>0; --x)p[k][j] = max(p[k][j], p[v[k][i]][x] + p[k][j-x]);}}for(int i=m; i>0; --i)p[k][i] = p[k][i-1] + a[k-1];}int main(){scanf("%d%d", &n, &m);for(int i=0; i<n; ++i)