# |
Author |
Problem |
Lang |
Verdict |
Time |
Memory |
Sent |
Judged |
|
55726315 |
Practice:
vvk05 |
1182C
- 38
|
C++14 (GCC 6-32)
|
Time limit exceeded on test 5
|
1000 ms
|
11024 KB
|
2019-06-18 20:57:34 |
2019-06-18 20:57:34 |
|
#include"bits/stdc++.h"
using namespace std;
typedef long long int ll;
const int N = 1e5 + 1;
map < pair < ll , char > , vector < string > >mp;
map < ll , vector <string > > mpp;
vector < string > v , vv,ans;
ll n,j,x,y;
string s[N];
char vo[5] = {'a','e','i','o','u'};
void lv(string ss)
{
ll cnt = 0 ;
char ch = {' '};
for(int k = 0; k < ss.size(); k++) {
for(int x = 0; x < 5; x++) {
if(ss[k] == vo[x]) cnt++ , ch = ss[k];
}
}
mp[{ cnt , ch }].push_back(ss);
}
int main()
{
ios_base::sync_with_stdio(0);cin.tie(NULL);cout.tie(NULL);
cin >> n;
for(j = 0; j < n; j++) {
cin >> s[j];
lv(s[j]);
}
/*for(auto i : mp){
cout << i.first.first << " " << i.first.second << " " << i.second.size() << "\n";
}*/
for(auto i : mp) {
while(i.second.size() >= 2) {
v.push_back(i.second[i.second.size() - 1]);
i.second.pop_back();
v.push_back(i.second[i.second.size() - 1]);
i.second.pop_back();
}
if(i.second.size() > 0) {
mpp[i.first.first].push_back(i.second[0]);
i.second.pop_back();
}
}
for(auto i : mpp) {
while(i.second.size() >= 2) {
vv.push_back(i.second[i.second.size() - 1]);
i.second.pop_back();
vv.push_back(i.second[i.second.size() - 1]);
i.second.pop_back();
}
}
/*for(int i = 0; i < v.size(); i++) cout << v[i] << " ";
cout << "\n";
for(int i = 0; i < vv.size(); i++) cout << vv[i] << " ";
cout <<"-------\n";*/
while(!v.empty() && !vv.empty()) {
ans.push_back(vv[vv.size() - 1]);
vv.pop_back();
ans.push_back(v[v.size() - 1]);
v.pop_back();
}
while(v.size() >= 2) {
ans.push_back(v[0]);
v.erase(v.begin());
ans.push_back(v[v.size() - 1]);
v.pop_back();
}
cout << ans.size() / 4 << "\n";
for(j = 0; j + 1 < ans.size(); j += 2)
cout << ans[j]<< " " << ans[j + 1] << "\n";
return 0;
}
Click to see test details