Pagini recente » Cod sursa (job #2793281) | Cod sursa (job #2904632) | Cod sursa (job #1081105) | Cod sursa (job #1214100) | Cod sursa (job #526659)
Cod sursa(job #526659)
// infoarena: problema/ordine //
#include <fstream>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 1000010;
ifstream in("ordine.in");
ofstream out("ordine.out");
char s[MAXN];
int n,i;
int process_group(int pos)
{
char c = s[pos];
int i=pos+1, j;
while(s[i] == c)
i++;
for(j = pos; j<i-1; j++)
out<<s[j]<<s[j-pos+i];
out<<s[i-1];
return (i-pos-1)*2;
}
int main()
{
in>>s;
n = strlen(s);
sort(s, s+n);
for(i=0; i<n; i++)
if(i<n-1 and s[i] == s[i+1])
{
i += process_group(i);
}
else
out<<s[i];
}