Pagini recente » Cod sursa (job #2134200) | Cod sursa (job #394294) | Cod sursa (job #857128) | Istoria paginii runda/ceva_ez/clasament | Cod sursa (job #755489)
Cod sursa(job #755489)
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 1000005
ifstream f("ordine.in");
ofstream g("ordine.out");
string s;
int ap[nmax];
void citeste(){
f >> s;
}
void rezolva(){
for(int i=0; i<s.size(); i++) ++ap[s[i]];
int ultimul = 0;
for(int i=0; i<s.size(); i++){
int ok = 0;
for(int j='a'; j<='z'; j++){
if (ap[j] == (((s.size() - i)/2)+1) ){//daca am un caracter care apare de nr_care_maitrebuie puse / 2 + 1 sunt obligat sa il pun
g << char(j);
ultimul = j;
--ap[j];
ok = 1;
break;
}
}
if (ok) continue;
for(int j='a'; j<='z'; j++){
if (j != ultimul && ap[j] != 0){
g << char(j);
--ap[j];
ultimul = j;
break;
}
}
}
}
int main(){
citeste();
rezolva();
f.close();
g.close();
return 0;
}