再次求助40分,样例#1不过
查看原帖
再次求助40分,样例#1不过
529038
Butterfly__qwq楼主2022/4/9 16:23
#include<bits/stdc++.h>
using namespace std;
struct pnt
{
	int x,y,num;
};
pnt pnts[401];
int read()
{
    int x=0,f=1;
	char ch=getchar();
    while(ch<'0'||ch>'9')
	{
		if(ch=='-')f=-1;
		ch=getchar();
	}
    while(ch>='0'&&ch<='9')
	{
		x=x*10+ch-'0';
		ch=getchar();
	}
    return x*f;
}
int cmp(pnt a,pnt b)
{
	return a.num>b.num;
}
int main()
{
	int m,n,k,ans,t,nx,ny,px,py,f;
	m=read();
	n=read();
	k=read();
	for(int i=0;i<m;i++)
    {
    	for(int j=0;j<n;j++)
    	{
    		pnts[i*n+j].x=i+1;
    		pnts[i*n+j].y=j+1;
    		pnts[i*n+j].num=read();
		}
    }
    sort(pnts,pnts+m*n,cmp);
    t=0;
    nx=0;
    ny=0;
	ans=0;
	for(int i=0;i<m;i++)
	{
		f=0;
		for(int j=0;j<n;j++)
		{
			px=abs(pnts[i*n+j].x-nx);
			py=abs(pnts[i*n+j].y-ny);
			t+=px;
			t+=py;
			if(t+pnts[i*n+j].x>k)
			{
				f=1;
				break;
			}
			ans+=pnts[i*n+j].num;
		}
		if(f)break;
	}
	cout<<ans;
	return 0;
}
2022/4/9 16:23
加载中...