/* Ajay Jadhav */
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <deque>
#include <vector>
#include <cstdlib>
#include <iomanip>
#include <cmath>
#include <queue>
#include <map>
#include <set>
#include <stack>
#include <ctime>
#include <string.h>
#include <climits>
#include <cstring>
using namespace std;
#define ll long long
#define pb push_back
#define pii pair<int,int>
#define vi vector<int>
#define vii vector<pii>
#define mi map<int,int>
#define mii map<pii,int>
#define all(a) (a).begin(),(a).end()
#define x first
#define y second
#define sz(x) (int)x.size()
#define hell 1000000007
#define rep(i,a,b) for(int i=a;i<b;i++)
#define endl '\n'
void solve()
{
int n, m;
cin >> n >> m;
map<char, priority_queue<pair<int, string>, vector<pair<int, string>>, greater<pair<int, string>>>> store;
for (char i = 'a'; i <= 'z'; i++)
{
priority_queue<pair<int, string>, vector<pair<int, string>>, greater<pair<int, string>>> pq;
store[i] = pq;
}
rep(i, 0, n)
{
string s;
cin >> s;
store[s[0]].push({0, s});
}
rep(i, 0, m)
{
string s;
cin >> s;
pair<int, string> tp = store[s[0]].top();
store[s[0]].pop();
cout << tp.y << endl;
store[s[0]].push({tp.x + 1, tp.y});
}
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t = 1;
// cin>>t;
while (t--)
{
solve();
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Output is correct |
2 |
Correct |
0 ms |
348 KB |
Output is correct |
3 |
Correct |
1 ms |
428 KB |
Output is correct |
4 |
Correct |
1 ms |
348 KB |
Output is correct |
5 |
Correct |
1 ms |
348 KB |
Output is correct |
6 |
Correct |
1 ms |
348 KB |
Output is correct |
7 |
Correct |
80 ms |
8740 KB |
Output is correct |
8 |
Correct |
75 ms |
8604 KB |
Output is correct |
9 |
Correct |
96 ms |
8600 KB |
Output is correct |
10 |
Correct |
75 ms |
8596 KB |
Output is correct |