Submission #447314

#TimeUsernameProblemLanguageResultExecution timeMemory
447314RichardDuyZigZag (COCI17_zigzag)C++14
80 / 80
58 ms6324 KiB
#include <bits/stdc++.h> using namespace std; typedef pair<int,string> ps; priority_queue<ps, vector<ps>, greater<ps> > pq; int n, k, c[26]; vector<string> oc[26]; int main() { // freopen("doanchu.inp","r",stdin); // freopen("doanchu.out","w",stdout); // cin >> n >> k; // for (int i = 1; i <= n; i++){ // string s; // cin >> s; pq.push({0,s}); // } // for (int i = 1 ; i <= k ; i++){ // char c; // cin >> c; // vector<ps> temp; // while(!pq.empty()){ // if (pq.top().second[0]!=c) {temp.push_back(pq.top()); pq.pop();} // else{ // string v = pq.top().second; int u = pq.top().first; // cout << v << endl; // pq.pop(); // pq.push({u+1,v}); // for (int i = 0; i < int(temp.size()); i++) pq.push(temp[i]); // temp.clear(); // break; // } // } // } // return 0; ios::sync_with_stdio(0); cin.tie(0); cin >> n >> k; for (int i=0; i<n; ++i) { string s; cin >> s; oc[s[0]-'a'].push_back(s); } for (int i=0; i<26; ++i) sort(oc[i].begin(), oc[i].end()); while(k--) { char a; cin >> a; int x=a-'a'; cout << oc[x][c[x]] << "\n"; c[x]=(c[x]+1)%oc[x].size(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...