Pagini recente » Cod sursa (job #1968189) | Cod sursa (job #2497502) | Cod sursa (job #1889639) | Cod sursa (job #2030997) | Cod sursa (job #462049)
Cod sursa(job #462049)
#include <stdio.h>
#include <algorithm>
#include <string.h>
using namespace std;
char sir[100000001], aux;
int n, i, j;
int poz, bun, p;
int main ()
{
FILE *f = fopen ("ordine.in","r");
FILE *g = fopen ("ordine.out","w");
fscanf (f,"%s", sir);
n = strlen(sir);
sort (sir, sir + n);
// printf (sir);
i = 0;
while (i < n)
{
poz = i;
if (sir[i] == sir[i+1])
{
poz = 0;
p = i + 1;
while (sir[i] == sir[i+1] && i < n)
{
i ++;
poz ++;
}
i --;
bun = i;
while (sir[i] == sir[bun])
bun ++;
if (poz > 1)
{
aux = sir[bun];
sir[bun] = sir[p];
sir[p] = aux;
}
else if (poz == 1)
{
aux = sir[bun];
sir[bun] = sir[i+1];
sir[i+1] = aux;
}
i = p;
}
else
i ++;
}
fprintf (g,"%s",sir);
fclose(g);
fclose(f);
return 0;
}