求大佬求助
查看原帖
求大佬求助
212728
一棵小白菜み楼主2020/8/3 19:27

#include<iostream>
#include<cstdio>
#include<math.h>
#include<algorithm>
using namespace std;
long long n,m,a[101][101],ma,sj,k,wz,hs,x,y,p;
int main()
{    
	 cin>>n>>m>>k;
	 for(int i=1;i<=n;i++)
		 for(int j=1;j<=m;j++)
			 cin>>a[i][j];
	 for(int i=1;i<=n;i++)
	 {
		 for(int j=1;j<=m;j++)
		 {
			 if(a[i][j]!=0)
			 {
				 if(a[i][j]>ma) ma=a[i][j];
			 }
		 }
	 }
	 for(int i=1;i<=n;i++)
	 {
		 for(int j=1;j<=m;j++)
		 {
			 if(a[i][j]==ma)
			 {
				 sj+=i;
				 a[i][j]=-1;
				 x=i;
				 y=j;
			 }
		 }
	 }
	 if(2*sj>k)
	 {
		 cout<<0;
		 return 0;
	 }
	 else
	 {
		 sj++;
		 p=sj;
		 hs+=ma;
	 }
	 while(p<=k)
	 {
		 ma=0;
		 for(int i=1;i<=n;i++)
	 {
		 for(int j=1;j<=m;j++)
		 {
			 if(a[i][j]!=0)
			 {
				 if(a[i][j]>ma) ma=a[i][j];
			 }
		 }
	 }
	 for(int i=1;i<=n;i++)
	 {
		 for(int j=1;j<=m;j++)
		 {
			 if(a[i][j]==ma)
			 {
				 sj+=abs(i-x)+abs(j-y);
				 a[i][j]=-1;
				 x=i;
				 y=j;
			 }
		 }
	 }
	 if(x+sj+1>k)
	 {
		 cout<<hs;
		 return 0;
	 }
	 else if(x+sj+1==k)
	 {
		 cout<<hs+ma;
		 return 0;
	 }
	 else
	 {
		 sj++;
		 p=sj;
		 hs+=ma;
	 }
	 }
	return 0;
}

不知道为什么总是90分??

2020/8/3 19:27
加载中...