Cod sursa(job #2005699)
| Utilizator | Data | 27 iulie 2017 20:29:23 | |
|---|---|---|---|
| Problema | Curcubeu | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.74 kb |
#include<iostream>
#include<set>
using namespace std;
int n,t,x,p,nr;
string a;
set<int>s;
char r[5000005];
int y[5000005];
int main()
{
for(int i=1;i<=5000000;i++)
s.insert(i);
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>a>>t;
for(int j=1;j<=t;j++)
{
cin>>x;
int t=a.size()-1;
nr=max(nr,x+t);
auto it=s.lower_bound(x);
p=*it-x;
while(p<a.size())
{
r[*it]=a[p];
y[*it]=1;
it=s.erase(it);
p=*it-x;
}
}
}
for(int i=1;i<=nr;i++)
if(y[i])
cout<<r[i];
else
cout<<'a';
}
