Cod sursa(job #128149)

Utilizator Omega91Nicodei Eduard Omega91 Data 26 ianuarie 2008 15:33:27
Problema Ordine Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
	ifstream f1("ordine.in");
	ofstream f2("ordine.out");
	char c, vecbun[1000000];
	unsigned int s[29] = {}, i, precedent = -1, l = 0;
	bool stop = false;
	c = f1.get();
	do {
		++s[c - 97];
		c = f1.get();
	} while (c != '\n');
	l = 0;
	//construim vecbun[] astfel:
	//luam punem cel mai mic element,
	//dar care sa nu fie egal cu elementul precedent,
	//pe cea mai mica pozitie.
	while (1) {
		for (i = l; i < 26; ++i) {
			if (s[i]) {
				if (precedent != i) {
					f2 << (char)(i + 97);
					precedent = i;
					--s[i];
					break;
				}
			}
			//else l = i;
		}
		if (i == 26) break;
	}
	f2 << endl;
	f1.close();
	f2.close();
	return 0;
}