样例和测试点1数据好像是对的 但是为什么所有测试点都是RE啊555
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;
scanf("%d",&n);
scanf("%d",&m);
int t,ma,proc,seqm[m][n]={},seqt[m][n],seq[m*n],max=0;
int current,i,j,k,finish[m]={},finisht[m]={};
for(i=0;i<n*m;i++){
scanf("%d",&seq[i]);// work sequence
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&seqm[i][j]);// machine used sequence
}
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
scanf("%d",&seqt[i][j]);// needed time
max+=seqt[i][j];
}
}
int timeseq[n][max+5]={};
for(i=0;i<n*m;i++){
current=seq[i]-1;
proc=finish[current];
t=seqt[current][proc];
ma=seqm[current][proc]-1;
j=finisht[current];//the earliest time
for(k=j;k<j+t;k++)
if(timeseq[ma][k]==1) j=k+1;
for(k=j;k<j+t;k++)
timeseq[ma][k]=1;
finish[current]++;//finish 1 procedure of seqi
finisht[current]=j+t;
}
for(i=max;i>0;i--){
for(j=0;j<n;j++){
if(timeseq[j][i]!=0){
cout << i+1;
return 1;
}
}
}
}