37分,为什么啊?
查看原帖
37分,为什么啊?
1747804
qingfengyaoye楼主2025/6/28 07:13
#include<bits/stdc++.h>
using namespace std;
int thing[21][21][2];
int thing2[21];
int thing3[21];
bool machine[21][100001];
int machine2[21];
int x[500];
bool cmp(int abc,int bcd){
	return abc>bcd;
}
int main(){
	int m,n;
	cin>>m>>n; 
	for(int i=1;i<=m*n;i++){
		cin>>x[i];
	}
	for(int i=1;i<=n;i++){
		for(int k=1;k<=m;k++){
			cin>>thing[i][k][0];
		}
	}
	for(int i=1;i<=n;i++){
		for(int k=1;k<=m;k++){
			cin>>thing[i][k][1];
		}
	}
	for(int i=1;i<=m*n;i++){
		int a=x[i];
		thing2[a]++;
		int b=thing2[a];
		int c=thing[a][b][0];
		int ab=thing[a][b][1];
		int d=thing3[a];
		bool find=1;
		int start;
		int sum=0;
		for(int i=d+1;i<=100001;i++){
			if(machine[c][i]==0){
				if(find){
					start=i;
					sum++;
					find=0;
				}
				else{
					sum++;
				}
			}
			else{
				find=1;
				sum=0;
			}
			if(sum==ab){
				for(int k=start;k<=start+sum-1;k++){
					machine[c][i]=1;
				}
				machine2[c]=max(machine2[c],start+sum-1);
				thing3[a]=machine2[c];
				break;
			}
		}
	}
	sort(machine2+1,machine2+m+1,cmp);
	cout<<machine2[1];
	return 0;
}


2025/6/28 07:13
加载中...