Pagini recente » Cod sursa (job #1890004) | Cod sursa (job #1638795) | Cod sursa (job #2141061) | Cod sursa (job #2050485) | Cod sursa (job #906699)
Cod sursa(job #906699)
#include <fstream>
#define cmax 130
#define nmax 1000100
#define a 97
#define z 122
#define majority (N-i+1)/2+1
using namespace std;
char S[nmax],Answer[nmax];
int N,A[cmax];
void solve() {
int i,j;
for(N=1;S[N];N++)
A[S[N]]++;
for(i=1,N--;i<=N;i++) {
for(j=a;j<=z;j++)
if(Answer[i-1]!=j && A[j])
Answer[i]=(A[j]==majority?j:(!Answer[i]?j:Answer[i]));
A[Answer[i]]--;
}
}
void read() {
ifstream in("ordine.in");
in.getline(S+1,nmax);
in.close();
}
void write() {
ofstream out("ordine.out");
for(int i=1;i<=N;i++)
out<<Answer[i];
out<<'\n';
out.close();
}
int main() {
read();
solve();
write();
return 0;
}