求助实在不知为何RE
查看原帖
求助实在不知为何RE
1237323
zhutongxuan楼主2024/2/29 21:27
#include<bits/stdc++.h>
#define lint unsigned long long
using namespace std;

struct node{
	lint s,t;
}b[5005];

bool cmp(node x,node y){
	return x.t <= y.t;
}

lint n,k,w[5005][5005],p[5005];

lint s[5005],a[100005],maxn = 0,maxi = 0;

lint cnt = 0;

int main(){
	cin>>k;
	for(lint i = 1;i <= k;i++){
		cin>>p[i];
		for(lint j = 1;j <= p[i];j++){
			cin>>w[i][j]; 
		}
		cin>>s[i];
	}
	cin>>n;
	for(lint i = 1;i <= n;i++){
		cin>>a[i];
	}
	for(lint i = 1;i <= k;i++){
		bool flag = 0;
		for(lint j = 2;j <= p[i];j++){
			if(a[w[i][j]] != a[w[i][1]]){
				flag = 1;
				break;
			}
		}
		if(!flag){
			cnt++;
			b[cnt].t = a[w[i][1]];
			b[cnt].s = s[i];
		}
	}
	sort(b + 1,b + cnt + 1,cmp);
	lint tot = 0;
	for(lint i = 1;i <= n;i++){
		if(b[i].t != b[i - 1].t){
			if(tot > maxn){
				maxn = tot;
				maxi = b[i - 1].t;
			}
			tot = 0;
		}
		tot += b[i].s;
	}
	if(tot > maxn){
		maxn = tot;
		maxi = b[cnt].t;
	}
	cout<<maxn<<endl<<maxi<<endl;
	return 0;
}
2024/2/29 21:27
加载中...