Pagini recente » Cod sursa (job #2957761) | Cod sursa (job #2758877) | Cod sursa (job #1152375) | Cod sursa (job #2158417) | Cod sursa (job #1482557)
#include <iostream>
#include <fstream>
#include <utility>
#include <vector>
using namespace std;
ifstream fin("ordine.in");
ofstream fout("ordine.out");
const int Sigma = 30;
int v[Sigma];
vector < pair < char, int > > A;
int main(){
int n;
string s;
fin >> s;
n = s.size();
for(int i = 0; i < n; i++){
v[s[i] - 'a']++;
}
for(int i = 0; i < Sigma; i++){
if(v[i] != 0){
A.push_back(make_pair('a' + i, v[i]));
}
}
char last = '+';
while(!A.empty()){
if(A[0].first != last){
fout << A[0].first;
A[0].second--;
last = A[0].first;
if(A[0].second == 0){
A.erase(A.begin());
}
} else {
fout << A[1].first;
A[1].second--;
last = A[1].first;
if(A[1].second == 0){
A.erase(A.begin() + 1);
}
}
}
return 0;
}