题目:
题解:
本题直接用list模拟就完事了。 本人对list不是很熟练导致re两发。
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
while(~scanf("%d",&n))
{
list<int>l;
int m;
scanf("%d",&m);
for(int i=1;i<=m;i++)
{
int k;
scanf("%d",&k);
l.push_back(k);
}
for(int i=2;i<=n;i++)
{
scanf("%d",&m);
list<int>::iterator it=l.begin();
for(int i=1;i<=m;i++)
{
int k;
scanf("%d",&k);
if(it==l.end())continue;
while(k>(*it))
{
it=l.erase(it);
if(it==l.end())break;
}
if(k==(*it))
{
it++;
}
}
while(it!=l.end())
{
it=l.erase(it);
}
}
list<int>::iterator it=l.begin();
for(it=l.begin();it!=l.end();it++)
{
if(it==l.begin()) printf("%d",*it);
else printf(" %d",*it);
}
printf("\n");
}
}
|