玄关
查看原帖
玄关
1476288
lyb_qhd楼主2025/1/13 13:03
#include<bits/stdc++.h>
#define up(i,l,r) for(ll i=l,E##i=r;i<=E##i;++i)
#define N 5+700
using namespace std;
using ll = long long;

ll n, k, a[N][N];

int main() {
	cin >> n >> k;
	up( i, 1, n ) up( j, 1, i ) {
		cin >> a[i][j];
		a[i][j] += a[i][j - 1];
	}
	ll ans = -1;
	up( bx, 1, n ) up( by, 1, n ) {
		for( ll tot = 0, cnt = 0, l = 1; l <= k * 2; ++l ) {
			int ex = bx + l - 1, ey = by + l - 1;
			if( ex > n || ey > ex ) break;
			tot += a[ex][ey] - a[ex][by - 1];
			cnt += l;
			if ( l >= k ) ans = max( ans, tot / cnt );
		}
		for( ll tot = 0, cnt = 0, l = 1; l <= k * 2; ++l ) {
			int ex = bx - l + 1, ey = by - l + 1;
			if( ex < 1 || ey < 1 || by > ex ) break;
			tot += a[ex][by] - a[ex][ey - 1];
			cnt += l;
			if ( l >= k ) ans = max( ans, tot / cnt );
		}
	}
	cout << ans;
}

WA on #14: Too short on line 1

2025/1/13 13:03
加载中...