147042025-01-28 16:26:01KristófVáltakozó (75 pont)cpp17Accepted 75/75273ms920 KiB
#include <iostream>
#include <string>
#include <map>

using namespace std;
char nbc(map<char,int> kar,char e,char p)
{    
    if(e!=p && p!='~')
        {
        return p;
        }
for(auto x:kar)
    {

    if(x.first!=e)
        {
        return x.first;
        }
    }
    return 'Ö';

}
char sip(map<char,int>kar,int size)
{

for(auto x : kar)
    {
    //cout<<kar.size()<<"       ";
    //cout<<x.second<<" "<<size<<" sip second ";
    if((x.second*2)-1==size)
        {
        return x.first;
        }
    }
    return '~';

}



int main()
{
    string a;
    cin>>a;
    char p='~';
    int m=a.size();
    map <char,int>kar;
    for(int i=0;i<a.size();i++)
        {
        kar[a[i]]++;
        }
    char e='F';
    for(auto x:kar)
        {
        if(m-x.second<x.second-1)
            {
            cout<<"-1";
            return 0;
            }
        }
    while(kar.size()!=0)
        {
        if(sip(kar,m)!='~')
            {
            p=sip(kar,m);
            }
        e=nbc(kar,e,p);
        if(e=='Ö')
            {
            cout<<"-1";
            return 0;
            }
        else
            {
            cout<<e;
            kar[e]--;
            m--;
            }
        if(kar[e]==0)
            {
            kar.erase(e);
            }
        }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
base75/75
1Accepted0/01ms316 KiB
2Accepted0/02ms316 KiB
3Accepted3/31ms508 KiB
4Accepted3/31ms316 KiB
5Accepted3/31ms316 KiB
6Accepted3/31ms316 KiB
7Accepted3/34ms428 KiB
8Accepted3/343ms732 KiB
9Accepted3/38ms708 KiB
10Accepted3/37ms612 KiB
11Accepted3/33ms316 KiB
12Accepted3/33ms316 KiB
13Accepted3/33ms316 KiB
14Accepted3/32ms508 KiB
15Accepted3/3180ms708 KiB
16Accepted3/3216ms744 KiB
17Accepted3/3226ms740 KiB
18Accepted3/3246ms744 KiB
19Accepted3/3254ms708 KiB
20Accepted3/3266ms828 KiB
21Accepted3/3268ms768 KiB
22Accepted6/6268ms708 KiB
23Accepted6/6268ms920 KiB
24Accepted6/6273ms732 KiB