大佬们帮忙看看70分
查看原帖
大佬们帮忙看看70分
1281317
Tania2013楼主2024/2/28 23:46
#include <bits/stdc++.h>
using namespace std;
int m,n,k,a[105][105]={},maxn,t1,t2,x,y,nx,ny;
long long sum;
void findmax()
{
    maxn=0;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            if(a[i][j]>maxn)
            {
                maxn=a[i][j];
                x=i;
                y=j;
            }
        }
    }
}
int main()
{
    cin>>m>>n>>k;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=m;j++)
        {
            cin>>a[i][j];
        }
    }
    findmax();
    if(2*x+1<k)
    {
        sum+=maxn;
        a[x][y]=0;
        k=k-x-1;
        nx=x;
        ny=y;
    }
    else if(2*x+1==k)
    {
        cout<<maxn;
        return 0;
    }
    else
    {
        cout<<0;
        return 0;
    }
    while(k>0)
    {
        findmax();
        if(maxn==0)
        {
            break;
        }
        a[x][y]=0;
        t1=abs(nx-x)+abs(ny-y)+1;
        if(t1+x>k)
        {
            break;
        }
        k-=t1;
        sum+=maxn;
        nx=x;
        ny=y;
    }
    cout<<sum;
    return 0;
}
2024/2/28 23:46
加载中...