9052022-01-26 15:16:02Babják PéterSivatagcpp11Elfogadva 40/4041ms28116 KiB
#include <bits/stdc++.h>
#define MAXN 1005
#define int long long
using namespace std;
int n,m,k,e;
int t1[MAXN][MAXN];
int g[MAXN][MAXN];
signed main()
{
	ios_base::sync_with_stdio(false);cin.tie(NULL);
	cin>>n>>m>>k>>e;
	for(int i=0;i<e;i++)
	{
		int a,b,c,d;
		cin>>a>>b>>c>>d;
		t1[a][b]++;
		t1[c+1][b]--;
		t1[c+1][d+1]++;
		t1[a][d+1]--;
	}
	for(int i=0;i<=n;i++)
	{
		int akt=0;
		for(int j=0;j<=m;j++)
		{
			akt+=t1[i][j];
			t1[i][j]=akt;
		}
	}
	for(int j=0;j<=m;j++)
	{
		int akt=0;
		for(int i=0;i<=n;i++)
		{
			akt+=t1[i][j];
			t1[i][j]=akt;
		}
	}
	for(int j=1;j<=m;j++)
	{
		for(int i=1;i<=k;i++) g[1][j]+=t1[i][j];
		for(int i=2;i+k-1<=n;i++) g[i][j]=g[i-1][j]+t1[i+k-1][j]-t1[i-1][j];
	}
	int ans=0,ansi=1,ansj=1;
	for(int i=1;i+k-1<=n;i++)
	{
		int sum=0,psum=0;
		for(int j=1;j<=k;j++)psum+=g[i][j];
		if(psum>ans)
		{
			ans=psum;
			ansi=i+k-1;
			ansj=1;
		}
		for(int j=2;j+k-1<=m;j++)
		{
			sum=psum-g[i][j-1]+g[i][j+k-1];
			if(sum>ans)
			{
				ans=sum;
				ansi=i+k-1;
				ansj=j;
			}
			psum=sum;
		}
		
	}
	cout<<ans<<'\n'<<ansi-k+1<<" "<<ansj;
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/02ms1872 KiB
2Elfogadva0/037ms13296 KiB
3Elfogadva2/22ms5240 KiB
4Elfogadva2/24ms9300 KiB
5Elfogadva2/210ms19024 KiB
6Elfogadva2/212ms19024 KiB
7Elfogadva2/212ms19032 KiB
8Elfogadva2/219ms19036 KiB
9Elfogadva2/22ms4792 KiB
10Elfogadva2/23ms7328 KiB
11Elfogadva2/29ms17280 KiB
12Elfogadva2/29ms15696 KiB
13Elfogadva2/29ms14932 KiB
14Elfogadva2/28ms13240 KiB
15Elfogadva1/141ms11888 KiB
16Elfogadva1/139ms16960 KiB
17Elfogadva1/124ms22152 KiB
18Elfogadva1/135ms18028 KiB
19Elfogadva2/241ms21552 KiB
20Elfogadva2/241ms19724 KiB
21Elfogadva2/241ms24444 KiB
22Elfogadva2/237ms23920 KiB
23Elfogadva2/241ms26964 KiB
24Elfogadva2/241ms28116 KiB