全TLE(悲
查看原帖
全TLE(悲
327281
Phigros_Guest楼主2023/8/29 10:57

代码如下

#include<bits/stdc++.h>
using namespace std;
int a[22][22];
int m,n,k;
int maxn,maxi,maxj,recordi,recordj;
int ans=0;
int check(int ri,int rj,int mi,int mj)
{
    int sum=0;
    if(ri>mi) sum+=ri-mi;
    else sum+=mi-ri;
    if(rj>mj) sum+=rj-mj;
    else sum+=mj-rj;
    return sum;
}
int main()
{
    cin>>m>>n>>k;
    for(int i=1;i<=m;i++) for(int j=1;j<=n;j++)
    {
        cin>>a[i][j];
        if(a[i][j]>maxn)
        {
            maxn=a[i][j];
            maxi=i;
            maxj=j;
            recordj=j;
        }
    }
    int flag=1;
    while(flag)
    {
        for(int i=1;i<=m;i++) for(int j=1;j<=n;j++) if(a[i][j]>maxn)
        {
            maxn=a[i][j];
            maxi=i;
            maxj=j;
        }
        if(check(recordi,recordj,maxi,maxj)+recordj<=k)
        {
            k-=check(recordi,recordj,maxi,maxj);
            ans+=a[maxi][maxj];
            a[maxi][maxj]=0;
            recordi=maxi;
            recordj=maxj;
        }
        else flag=0;
    }
    cout<<ans;
    return 0;
}
2023/8/29 10:57
加载中...