Pagini recente » Cod sursa (job #1398355) | Cod sursa (job #1423349) | Cod sursa (job #1431872) | Cod sursa (job #478472) | Cod sursa (job #109558)
Cod sursa(job #109558)
#include<fstream.h>
ifstream fin("ordine.in");
ofstream fout("ordine.out");
int verificare(char sir[1000000])
{
long i=0;
while(sir[i]!=sir[i+1]) i++;
if(i<strlen(sir)) return 1;
else return 0;
}
int main()
{
long v[26],S=0;
long i,j;
char c,s[1000000],aux,x;
for(i=0;i<=26;i++) v[i]=0;
while(fin>>c) v[int(c)-97]++;
for(i=0;i<=26;i++) S+=v[i];
for(i=0;i<S;i++)
{
j=0;
while(v[j]==0) j++;
s[i]=char(j+97);
v[j]--;
}
while(verificare(s)){
for(i=0;i<S;i++)
{
if(s[i]==s[i+1])
{
if(s[i+2]!=0)
{
aux=s[i+1];
s[i+1]=s[i+2];
s[i+2]=aux;
}
else
{
aux=s[i];
s[i]=s[i-1];
s[i-1]=aux;
}
}
}}
for(i=0;i<S;i++) fout<<s[i];
return 0;
}