#include <bits/stdc++.h>
using namespace std;
long long k, n;
set<string> s, a;
string x, y, z;
int main (){
ios::sync_with_stdio(0);
cin.tie(0);
cin >> k >> n;
for (int i=0;i<k;i++){
cin >> x;
s.insert(x);
}
set<string>::iterator its1 = s.begin();
set<string>::iterator its2 = s.begin();
set<string>::iterator ita1 = a.begin();
set<string>::iterator ita2 = a.begin();
for (int i=0;i<n;i++){
cin >> y;
z = y + "zzzzzzzzzzzzzzzzzzzzzzz";
its1 = s.lower_bound(y);
its2 = s.lower_bound(z);
if (its1 == its2){
ita1 = a.lower_bound(y);
ita2 = a.lower_bound(z);
while (ita1 != ita2){
if (ita1 == a.end()) break;
s.insert(*ita1);
a.erase(ita1);
ita1 = a.lower_bound(y);
ita2 = a.lower_bound(z);
}
its1 = s.lower_bound(y);
}
cout << "\n" << *its1;
a.insert(*its1);
s.erase(its1);
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
508 KB |
Output is correct |
3 |
Correct |
2 ms |
576 KB |
Output is correct |
4 |
Correct |
2 ms |
576 KB |
Output is correct |
5 |
Correct |
2 ms |
672 KB |
Output is correct |
6 |
Correct |
2 ms |
672 KB |
Output is correct |
7 |
Correct |
308 ms |
11020 KB |
Output is correct |
8 |
Correct |
322 ms |
11164 KB |
Output is correct |
9 |
Correct |
305 ms |
11164 KB |
Output is correct |
10 |
Correct |
316 ms |
11164 KB |
Output is correct |