60分求调!!!
查看原帖
60分求调!!!
1711634
zengsixuan楼主2025/6/21 16:04
	#include<bits/stdc++.h>
	using namespace std;
    struct dd
    {
        int i,j,c;
    }a[251];
    bool camp(dd a,dd b)
    {
        return a.c>b.c;
    }
    int q;
	int main()
	{
		//freopen(".in","r",stdin);
		//freopen(".out","w",stdout);
        int n,m,k;
        cin>>n>>m>>k;
        for(int z=1;z<=n;z++)
        {
            for(int s=1;s<=m;s++)
            {
                int x;
                cin>>x;
                if(x!=0)
                {
                    q++;
                    a[q].i=z;
                    a[q].j=s;
                    a[q].c=x;
                }
            }
        }
        sort(a+1,a+n+1,camp);
        int sum=0;
        int y=a[1].j,x=0;
        for(int z=1;z<=q;z++)
        {
            int f=abs(a[z].i-x)+abs(a[z].j-y);
            int ff=a[z].i;
            if(f<=k-ff-1) 
            {
                k=k-f-1;
                x=a[z].i;
                y=a[z].j;
                sum=sum+a[z].c;
            }
            else 
            {
                break;
            }
        }
        cout<<sum;
		return 0;
	}
2025/6/21 16:04
加载中...