萌新救助,全WA
查看原帖
萌新救助,全WA
244164
835790570zxk楼主2020/11/27 23:44
#include<iostream>
using namespace std;
int N;
int x;
int y;
int n;
int a[15][15];
int f[15][15];
int ans1;
int ans2;
int ans;
void s(int p,int q){
	if(p==1 && q==1) return;
	a[p][q]=0;
	if(p==1) return s(p,q-1);
	if(q==1) return s(p-1,q);
	if(f[p-1][q]>f[p][q-1]) return s(p-1,q);
	else return s(p,q-1);
}
int main(){
	cin>>N;
	x=N;
	while(x!=0){
		cin>>x;
        cin>>y;
        cin>>n;
        a[x][y]=n;
	}
	for(int i=1;i<=N;i++){
		f[1][i]=a[1][i];
		f[i][1]=a[i][1];
	}
	for(int i=2;i<=N;i++){
		for(int j=2;j<=N;j++){
			f[i][j]=max(f[i-1][j],f[i][j-1])+a[i][j];
		}
	}
	ans1=f[N][N];
	s(N,N);
	for(int i=1;i<=N;i++){
		f[1][i]=a[1][i];
		f[i][1]=a[i][1];
	}
	for(int i=2;i<=N;i++){
		for(int j=2;j<=N;j++){
			f[i][j]=max(f[i-1][j],f[i][j-1])+a[i][j];
		}
	}
	ans2=f[N][N];
	ans=ans1+ans2;
	cout<<ans;
	return 0;
}
2020/11/27 23:44
加载中...