求助昨晚CFb
  • 板块学术版
  • 楼主white_carton
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/3/27 20:42
  • 上次更新2023/10/23 20:17:33
查看原帖
求助昨晚CFb
487199
white_carton楼主2023/3/27 20:42

RT,看了官方题解发现思路差不多

#include<bits/stdc++.h>
#define int long long
using namespace std;
int read(){
	int f=1,sum=0;
	char c=getchar();
	while(!isdigit(c)){
		if(c=='-'){
			f=-1;
		}
		c=getchar();
	}
	while(isdigit(c)){
		sum=(sum*10)+(c^48);
		c=getchar();
	}
	return sum*f;
}
void write(int a){
	if(a<0){
		putchar('-');
		a=-a;
	}
	if(a>9){
		write(a/10);
	}
	putchar(a%10+'0');
}
int book[100100],ans[100100];
signed main(){
	int t,s=0;
	cin>>t;
	while(t--){
		int m,n,cnt=0,gs=0,flag=0;
		cin>>m;
		memset(book,0,sizeof(book)); 
		for(int i=1;i<=m;i++){
			cnt++;
			cin>>n;
			int a;
			for(int j=1;j<=n;j++){
				cin>>a;
				gs=max(a,gs);
				book[a]=cnt;
			}
		}
		cnt=0;
		for(int i=1;i<=m;i++){
			for(int j=1;j<=gs;j++){
				if(book[j]==i){
	//				cout<<j<<" "<<book[j]<<endl;
					ans[++cnt]=j;
					flag=1;
					break;
				}
			}
			if(!flag){
				cout<<-1<<endl;
				break;
			}
		}
		if(!flag){
			continue;
		}
		for(int i=1;i<=cnt;i++){
			cout<<ans[i]<<" ";
		}
		cout<<endl;
	}
	return 0;
}
/*
1.是否需要开long long!开long long空间是否足够!!!
2.禁止摆烂!禁止摆烂!禁止摆烂!!!
3.该打的暴力一定要打!!!不能打暴力也要打随机!!!
警钟撅烂!!!
*/



2023/3/27 20:42
加载中...