rt。发现是字典序的问题 (但不会改 ,求调
# include <iostream>
using namespace std;
int n,m,mac[20],g[20][20],dp[20];
void dfs(int idx,int sum,int ma){
if (ma > m) return;
if (sum == dp[m]){
for (int i = 1;i <= n;i++) cout << i << " " << mac[i] << endl;
exit(0);
}if (idx > n) return;
for (int i = 0;i <= m;i++) mac[idx] = i,dfs(idx + 1,sum + g[idx][i],ma + i);
}int main(){
cin >> n >> m;
for (int i = 1;i <= n;i++){
for (int j = 1;j <= m;j++) cin >> g[i][j];
}for (int i = 1;i <= n;i++){
for (int j = m;j >= 0;j--){
for (int k = 0;k <= j;k++) dp[j] = max(dp[j],dp[j-k]+g[i][k]);
}
}cout << dp[m] << endl;
dfs(1,0,0);
return 0;
}