题目要求字典序最小
蒟蒻的代码只拿了20pts
#include<bits/stdc++.h>
using namespace std;
int a[16][11];
int n,m;
int dp[20];
int path[20][20];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&a[n+1-i][j]);
for(int i=1;i<=n;i++)
{
for(int j=m;j>=0;j--)
{
for(int k=0;k<=m;k++)
{
if(j>=k)
{
if(dp[j-k]+a[i][k]>=dp[j])
{
dp[j]=dp[j-k]+a[i][k];
for(int x=1;x<i;x++) path[j][x]=path[j-k][x];
path[j][i]=k;
}
}
}
}
}
printf("%d\n",dp[m]);
for(int i=n;i>=1;i--) printf("%d %d\n",n-i+1,path[m][i]);
}