记录编号 473829 评测结果 AAAAAAAAAA
题目名称 [NOIP 2006]作业调度方案 最终得分 100
用户昵称 GravatarAys 是否通过 通过
代码语言 C++ 运行时间 0.072 s
提交时间 2017-11-09 09:14:37 内存使用 0.32 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
using namespace std;
int m,n,a[25][905];
int sx[25*25],gjjq[25][25],gjsj[25][25];
int nowgx[25],kai[25];
void pr(){
	int maxx=0;
	for(int i=1;i<=m;i++){
		for(int c=1;c<900;c++){
			if(a[i][c]==1)
			maxx=max(maxx,c);
		}
	}
	printf("%d\n",maxx);
}

void mn(){
	int g,h;
	for(int i=1;i<=n*m;i++){
		g=sx[i];
		nowgx[g]++;
		h=nowgx[g];
	
	int jq=gjjq[g][h];
	int sj=gjsj[g][h];
//	cout<<jq<<" "<<sj<<" *"<<endl;
	for(int i=kai[g]+1;i<900;i++){
		int ok=1;
		for(int c=i;c<i+sj;c++){
			if(a[jq][c]==1){
				ok=0;break;
			}
		}
		if(ok==1){
		//	cout<<i<<" -> "<<i+sj-1<<endl;
			for(int c=i;c<i+sj;c++){
				a[jq][c]=1;
			}
			kai[g]=i+sj-1;
			break;
		}
	}
}
}


void sc(){
	
	scanf("%d%d",&m,&n);
	for(int i=1;i<=n*m;i++){
		scanf("%d",&sx[i]);
	}
	for(int i=1;i<=n;i++){
		for(int ii=1;ii<=m;ii++){
			scanf("%d",&gjjq[i][ii]);
		}
	}
	for(int i=1;i<=n;i++){
		for(int ii=1;ii<=m;ii++){
			scanf("%d",&gjsj[i][ii]);
		}
	}
}


int main(){
	freopen("jsp.in","r",stdin);
	freopen("jsp.out","w",stdout);
	sc();
	mn();
	pr();
	return 0;
}