WA10pts求助
查看原帖
WA10pts求助
1207677
MassPoint楼主2024/12/28 12:37

rt.

#include<bits/stdc++.h>
using namespace std;
int ans;
int l,r,u,d;
int a[2010][2010];
int k,n,m;
void solve1(){
	for(int i=u;i<=d;i++){
		int sum=0;
		for(int j=l;j<=r;j++)	sum+=a[i][j];
		if(sum<=k)	u++,ans++;
		else	break;
	}
}
void solve2(){
	for(int i=d;i>=u;i--){
		int sum=0;
		for(int j=l;j<=r;j++)	sum+=a[i][j];
		if(sum<=k)	d--,ans++;
		else	break;
	}
}
void solve3(){
	for(int i=l;i<=r;i++){
		int sum=0;
		for(int j=u;j<=d;j++)	sum+=a[j][i];
		if(sum<=k)	l++,ans++;
		else	break;
	}
}
void solve4(){
	for(int i=r;i>=l;i--){
		int sum=0;
		for(int j=u;j<=d;j++)	sum+=a[j][i];
		if(sum<=k)	r--,ans++;
		else	break;
	}
}
int main(){
	scanf("%d%d%d",&k,&m,&n);
	l=1,r=m,u=1,d=n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)	scanf("%d",&a[i][j]);
	while(l<=r&&u<=d){		
		solve1();
		solve2();
		solve3();
		solve4();
	}
	printf("%d",ans);
    return 0;
}
2024/12/28 12:37
加载中...