#include<iostream>
using namespace std;
int num[21];
int jiqi[21][21];
int time[21][21];
int cixu[410];
int sumtime[21][10050];
int pretime[21];//每个元件的前一道工序做完的时间
int main(){
int m,n;
scanf("%d%d",&m,&n);
for(int i=1;i<=n*m;i++)scanf("%d",&cixu[i]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&jiqi[i][j]);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&time[i][j]);
for(int i=1;i<=n;i++)num[i]=1,pretime[i]=0;
for(int i=1;i<=n*m;i++){
int qi = jiqi[cixu[i]][num[cixu[i]]];
int tim = time[cixu[i]][num[cixu[i]]];
for(int x=pretime[cixu[i]]+1;;){
if(sumtime[qi][x]==0){
int len = 1;
while(sumtime[qi][x+len]==0){
len++;
if(len>=tim)
break;
}
if(len>=tim){
for(int q=x;q<len+x;q++)
sumtime[qi][q]=1;
pretime[cixu[i]]=len+x-1;
break;
}
else{
x+=len;
}
}
else x++;
}
num[cixu[i]]++;
}
int max=0;
for(int i=1;i<=m;i++){
int t = 10050;
while(sumtime[i][t]==0)t--;
if(t>max)max=t;
}
printf("%d",max);
}
自己用devc++可以出结果,在这儿却编译失败了 警告:在算术表达式中使用了函数指针 [-Wpointer-arith] ,求解答