WA 20pts求助qwq
查看原帖
WA 20pts求助qwq
1207677
MassPoint楼主2025/1/25 16:39

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();
		if(l>r||u>d)	break;
		solve2();
		if(l>r||u>d)	break;
		solve3();
		if(l>r||u>d)	break;
		solve4();
	}
	printf("%d",ans);
    return 0;
}
2025/1/25 16:39
加载中...