Se dau n
cuvinte formate doar din litere mici. Trebuie construit un nou cuvânt C
de n
litere format astfel: prima literă a lui C
este din primul cuvânt, a doua literă este din al doilea cuvânt, …, a n
-a literă este din cel de-al n
-lea cuvânt. În plus, literele cuvântului C
trebuie să fie distincte.
Cerința
Să se determine cuvântul C
minim lexicografic ce se poate forma utilizând litere distincte extrase din cuvintele inițiale.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi cele n
cuvinte separate prin spațiu.
Date de ieșire
Programul va afișa pe ecran cuvântul C
minim lexicografic care se poate obține din litere distincte.
Restricții și precizări
1 ≤ n ≤ 9
- Cele
n
cuvinte au cel puțin o literă și cel mult6
litere - Este garantat că
C
se poate forma din cuvintele inițiale
Exemplu
Intrare
3 gem de caise
Ieșire
eda
#include <bits/stdc++.h> using namespace std; int n; char cuv[11][11], rez[11]; int f[30], ok; void afisare() { for(int i = 1 ; i <= n ; i++) cout << rez[i]; } void back(int k) { for (int i = 0; i < strlen(cuv[k]); ++ i) if (f[cuv[k][i] - 'a'] == 0) { f[cuv[k][i] - 'a'] = 1; rez[k] = cuv[k][i]; if (ok)return; if (k == n) { ok = 1; afisare(); } else back(k + 1); f[cuv[k][i] - 'a'] = 0; } } int main() { cin >> n; for (int i = 1; i <= n; i ++) { cin >> cuv[i]; sort(cuv[i], cuv[i] + strlen(cuv[i])); } back(1); }