Pagini recente » Cod sursa (job #635797) | Cod sursa (job #2470721) | Cod sursa (job #523490) | Cod sursa (job #530350) | Cod sursa (job #237407)
Cod sursa(job #237407)
#include<stdio.h>
#include<string.h>
int ok;
char s[1000001];
int divide(int p,int q){
int st,dr,x;
st=p;
dr=q;
x=s[p];
while(st<dr){
while(st<dr&&s[dr]>=x)
--dr;
s[st]=s[dr];
while(st<dr&&s[st]<=x)
++st;
s[dr]=s[st];
s[st]=x;}
return st;}
void qsort(int p,int q){
int m;
m=divide(p,q);
if(m-1>p)
qsort(p,m-1);
if(m+1<q)
qsort(m+1,q);}
void solve(){
int i,n,x,aux;
gets(s);
n=strlen(s)-1;
qsort(0,n);
for(i=2; i<=n; ++i)
if(s[i]==s[i-1]){
x=i;
while(s[x]==s[x-1])
++x;
aux=s[i];
s[i]=s[x];
s[x]=aux;}
printf("%s",s);}
int main(){
freopen("ordine.in","r",stdin);
freopen("ordine.out","w",stdout);
solve();
return 0;}