|
- #include<iostream>
- using namespace std;
- #define FOR(i,n,m) for(int i=n;i<=m;i++)
- int a[3010][3010],f[3010][3010],g[3010][3010];
- int n,m,t;
- void dg(int x,int cc)
- {
- if(x==1) {cout<<"1 "<<cc<<endl;;return;}
- dg(x-1,cc-g[x][cc]);
- cout<<x<<' '<<g[x][cc]<<endl;
- }int main()
- {
- ios::sync_with_stdio(false);
- cin>>n>>m;FOR(i,1,n) FOR(j,1,m) cin>>a[i][j];
- FOR(i,1,n) FOR(j,0,m){
- FOR(k,0,j) if(f[i-1][k]+a[i][j-k]>f[i][j]){
- f[i][j]=f[i-1][k]+a[i][j-k];
- g[i][j]=j-k;
- }
- }///cout<<n<<" "<<m<<endl;
- cout<<f[n][m]<<endl;dg(n,m);
- return 0;
- }
复制代码 |
|