Pagini recente » Istoria paginii runda/1321 | Istoria paginii runda/rommmmm/clasament | Istoria paginii runda/temajunioriichb/clasament | Istoria paginii runda/luca_oji4/clasament | Cod sursa (job #111314)
Cod sursa(job #111314)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define v 1000000
char s[v],w[v];
int q[v];
void citire()
{
freopen("ordine.in","r",stdin);
fgets(s,v,stdin);
if (s[strlen(s)-1]=='\n')
s[strlen(s)-1]=0;
fclose(stdin);
}
int sort_function( const void *a, const void *b)
{
return( strcmp((char *)a,(char *)b) );
}
void ordine()
{
w[0]=s[0];
q[0]=1;
int k=1;
for (int i=1; i<strlen(s); i++)
if (s[k]!=w[i-1] && q[k]==0)
{
q[k]=1;
w[i]=s[k++];
}
else
{
for (int j=i+1; j<strlen(s); j++)
if (s[j]!=w[i-1] && q[j]==0)
{
q[j]=1;
w[i]=s[j];
break;
}
}
w[strlen(s)]=0;
}
void afisare()
{
freopen("ordine.out","w",stdout);
printf("%s",w);
fclose(stdout);
}
int main()
{
citire();
qsort((void *)s, strlen(s), sizeof(s[0]), sort_function);
ordine();
afisare();
return 0;
}