QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#427258#8780. Training, Round 2ucup-team2279#RE 0ms0kbC++20849b2024-06-01 11:29:572024-06-01 11:29:57

Judging History

你现在查看的是最新测评结果

  • [2024-06-01 11:29:57]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:0kb
  • [2024-06-01 11:29:57]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;

const int N=5005;

int n,f[N][N],g[N][N],a,b;

int main(){
	scanf("%d%d%d",&n,&a,&b);
	memset(f,0xcf,sizeof f);
	memset(g,0xcf,sizeof g);
	f[0][0]=0,g[0][0]=0;
	for(int i=1; i<=n; i++){
		int xl,xr,yl,yr;
		scanf("%d%d%d%d",&xl,&xr,&yl,&yr);
		xl-=a,xr-=a,yl-=b,yr-=b;
		for(int j=0; j<i; j++){
			if(xl<=j&&j<=xr&&f[i-1][j]>=yl&&f[i-1][j]<=yr){
				f[i][j]=max(f[i][j],f[i-1][j]+1);
				f[i][j+1]=max(f[i][j+1],f[i-1][j]);
			}
			if(xl<=g[i-1][j]&&g[i-1][j]<=xr&&yl<=j&&j<=yr){
				g[i][j]=max(g[i][j],g[i-1][j]+1);
				g[i][j+1]=max(g[i][j+1],g[i-1][j]);
			}
		}
		for(int j=0; j<=i; j++)
			g[i][f[i][j]]=max(g[i][f[i][j]],j),
			f[i][g[i][j]]=max(f[i][g[i][j]],j);
	}
	int ans=0;
	for(int i=0; i<=n; i++) ans=max(ans,f[n][i]+i);
	printf("%d\n",ans);
	return 0;
}

详细

Test #1:

score: 0
Runtime Error

input:

3 0 0
0 1 0 1
1 1 0 1
1 1 1 1

output:


result: