General
 
 
# 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
→ Source
#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;
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details