Pagini recente » Cod sursa (job #2841901) | Cod sursa (job #648126) | Cod sursa (job #2771223) | Cod sursa (job #1931516) | Cod sursa (job #580292)
Cod sursa(job #580292)
#include<fstream>
#include<cstring>
using namespace std;
char c[101];
int n, v[100], nv = 0, p1 = 0, p2 = 0;
int main() {
int i, a;
ifstream f("ordine.in");
ofstream g("ordine.out");
f.getline(c + 1, 1000001);
n = strlen(c + 1);
for(i = 1; i <= n; ++i) {
++v[a = (int)c[i] - 'a' + 1];
if(nv < a)
nv = a;
}
while(1) {
if(v[p1]) {
g << (char)(p1 + 'a' - 1);
--v[p1];
}
else {
for(i = p1 + 1; i <= nv; ++i)
if(v[i] && i != p2) {
p1 = i;
break;
}
if(i > nv)
break;
g << (char)(p1 + 'a' - 1);
--v[p1];
}
if(v[p2]) {
g << (char)(p2 + 'a' - 1);
--v[p2];
}
else {
for(i = p2 + 1; i <= nv; ++i)
if(v[i] && i != p1) {
p2 = i;
break;
}
if(i > nv)
break;
g << (char)(p2 + 'a' - 1);
--v[p2];
}
}
g << '\n';
g.close();
return 0;
}