fork download
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. int main() {
  6. char s[4000], vocale[11] = "aeiouAEIOU", cuvant[20];
  7. cin.getline(s, 4000, 0);
  8. int lg = strlen(s);
  9. int nrVoc = 0, incepCuv = -1, minim = 21, cond = 1,
  10. pozDeSters, finalCuv = 0;
  11. while (cond == 1){ // conditia de repetare citire sir
  12. cond = 0;
  13. for (int i = 0; i < lg; ++i){
  14. if (isalpha(s[i])){
  15. cond = 1; // atata timp cat exista o litera in sir
  16. if (incepCuv == -1)
  17. incepCuv = i;
  18. for (int j = 0; j < 11; ++j){ // cautam si numaram vocalele
  19. if (vocale[j] == s[i]){
  20. ++nrVoc;
  21. break;
  22. }
  23. }
  24. }
  25. if (isalpha(s[i]) && !isalpha(s[i + 1])){ // marcam finalul cuvantului
  26. int nrLit = i + 1 - incepCuv;
  27. if (nrVoc < minim){ // retinem cuvantul cu cele mai putine vocale intr-un sir care se reseteaza de la 0 de fiecare data cand primeste alt cuvant
  28. minim = nrVoc;
  29. pozDeSters = incepCuv;
  30. int lgc = strlen(cuvant);
  31. for (int i = 0; i < lgc; ++i){
  32. cuvant[i] = 0;
  33. }
  34. strncpy(cuvant, s + incepCuv, nrLit);
  35. finalCuv = i;
  36. }
  37. if (nrVoc == minim){ // daca exista e cuv egale ca nr de voc se compara cuvintele folosindu-ne de un sir aux
  38. char aux[20];
  39. int lga = strlen(aux);
  40. for (int i = 0; i < lga; ++i){
  41. aux[i] = 0;
  42. }
  43. strncpy(aux, s + incepCuv, nrLit);
  44. if (strcmp(aux, cuvant) < 0){
  45. strcpy(cuvant, aux);
  46. pozDeSters = incepCuv;
  47. finalCuv = i;
  48. }
  49. }
  50. incepCuv = -1, nrVoc = 0; // resetam variabilele care marcheaza fiecare cuvant
  51. }
  52. }
  53. if (cond == 1){ // cat conditia e valabila se afiseaza cuvantul
  54. cout << cuvant << '\n';
  55. char aux[4000];
  56. strcpy(aux, s + finalCuv + 1); // si apoi se sterge cuvantul din sirul initial
  57. strcpy(s + pozDeSters, aux);
  58. lg = strlen(s);
  59. minim = 21;
  60. }
  61. }
  62. return 0;
  63. }
Success #stdin #stdout 0s 5304KB
stdin
Ana are mere
Cosmin are portocale si titusi exxistaaaaaaa iubire
stdout
si
Ana
Cosmin
are
are
mere
titusi
iubire
portocale
exxistaaaaaaa