Cod sursa(job #2848026)

Utilizator dorupopDoru Pop dorupop Data 12 februarie 2022 00:23:30
Problema Ordine Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <cstring>
#include <fstream>
using namespace std;
char b[100001];
int fr[27];
ifstream fin("ordine.in");
ofstream fout("ordine.out");
int main ()
{
   char ch;
   int n=0;
   while(fin>>ch){
      fr[ch-'a']++;
      n++;
   }

b[0]='+';
   for(int i=1;i<=n;i++){
      int ok=0;
    for(int j=0;j<='z'-'a';j++)
        if(fr[j]!=0&&fr[j]>(n-i+1)/2&&j+'a'!=b[i-1]){
             ok=1;
             b[i]=j+'a';
             fr[j]--;
             break;
      }
     if(ok==0)
         for(int j=0;j<='z'-'a';j++)
            if(fr[j]!=0&&j+'a'!=b[i-1]){
           {
               b[i]=j+'a';
               fr[j]--;
               break;

           }

      }
   }
for(int i=1;i<=n;i++)
    fout<<b[i];
}