比赛 名字我取了 评测结果 AAAAAAAAAAAAAAA
题目名称 字串重组 最终得分 100
用户昵称 father 运行时间 1.300 s
代码语言 C++ 内存使用 16.52 MiB
提交时间 2017-09-15 21:01:38
显示代码纯文本
#include<fstream>
#include<string>
#include<cstring>
#include<algorithm>
using namespace std;
ifstream cin("R.in");
ofstream cout("R.out");
class node 
{public:
	int d,l;
	node()
	{
		l=0;
	}
}f[2000001];
int n,i,a,t,j,max_size=0;
string s,str[200001];
int lyh()
{
	cin>>n;
	for(i=1;i<=n;i++)
	{
		cin>>str[i];
		cin>>a;
		for(j=1;j<=a;j++)
		{
			cin>>t;
			if(f[t].l<str[i].length())
			{
				f[t].d=i;
				f[t].l=str[i].length();
			}
			max_size=max(max_size,t);
		}
	}
	long long now=0;
	for(i=1;i<=max_size;i++)
	{
		if(f[i].d==0&&now==0)cout<<'a';
		if(f[i].d!=0)
		{
			if(now==0){
				cout<<str[f[i].d];
				now=str[f[i].d].length();
			}
			if(now>=1&&now<str[f[i].d].length()){
				cout<<str[f[i].d].substr(now);
				now=str[f[i].d].length();
			}
		}
		if(now>0)now--;
	}
	cin.close();
	cout.close();
	return 0;
}
int h=lyh();
int main(){;}