fork download
  1. #include <iostream>
  2. #include <cstring>
  3. using namespace std;
  4.  
  5. const int MAX_LENGTH = 1000;
  6. const int TEN = 10;
  7. int freq[TEN];
  8. int freqN[TEN];
  9. int main() {
  10. char n[MAX_LENGTH];
  11. cin >> n;
  12. int length1 = strlen(n);
  13. //cout << length1 << " <- N\n" ;
  14. for (int i = 0; i < length1; ++i) {
  15. ++freqN[n[i] - '0'];
  16. }
  17. for (int i = 0; i < TEN; ++i) {
  18. //cout << freqN[i]<< " " << i << "\n"; // frecventa la N
  19. }
  20. int desInN = 0, frecventa = 0;;
  21. for (int i = 0; i < TEN; ++i) {
  22. if (freqN[i] >= frecventa) {
  23. desInN = i;
  24. frecventa = freqN[i];
  25. }
  26. }
  27. //cout << n << " " << desInN << " " << " <- Primul numar N + cea mai frecventa cifra sau cea mai mare \n";
  28.  
  29. char linie[MAX_LENGTH];
  30. cin.getline(linie, MAX_LENGTH);
  31. //char numbCreate[MAX_LENGTH] = {0};
  32. int index = 0;
  33. //int freqInNou = 0, aparitii = 0;
  34. while (cin.getline(linie, MAX_LENGTH)) {
  35. //cout << linie <<"<-\n";
  36. int length = strlen(linie);
  37. for (int i = 0; i < length; ++i){
  38. //cout << linie[i] <<"<-";
  39. if (linie[i] >= '0' && linie[i] <= '9') {
  40. ++freq[linie[i] - '0'];
  41. // numbCreate[index] = linie[i];
  42. //cout << linie[i] <<"<-\n";
  43. //cout << linie[i] << " " << numbCreate[index] << " <-1\n";
  44. //numbCreate = numbCreate * TEN + linie[i] - 48;
  45. //++freq[numbCreate[index] - '0'];
  46. //cout << numbCreate << " \n";
  47. //++index;
  48. }
  49. }
  50. // cout << linie << " <- LINIE\n";
  51. }
  52. int freqInNou = 0, aparitii = 0;
  53. for (int i = 0; i < TEN; ++i) {
  54. if (freq[i] >= aparitii) {
  55. aparitii = freq[i];
  56. freqInNou = i;
  57. }
  58. }
  59. int counter = 0;
  60. for (int i = 0; i < TEN; ++i) {
  61. if (freqN[i] > 0 && freq[i] > 0) {
  62. ++counter;
  63. }
  64. //cout << freqN[i] << " " << freq[i] <<" \n";
  65. }
  66. if (counter == length1) {
  67. for (int i = length1 - 1; i >= 0; --i) {
  68. cout << n[i] ;
  69. }
  70. } else {
  71. cout << desInN << " " << freqInNou;
  72. }
  73. //cout << counter;
  74. //cout << index << "<- INDEX\n";
  75. // cout << freqInNou << " \n";
  76. //cout << "\n";
  77. // n = 12342
  78. // nrNou = 4013589
  79. /* int freqInNou = 0, aparitii = 0;
  80. for (int i = 0; i < TEN; ++i) {
  81. if (freq[i] >= aparitii) {
  82. aparitii = freq[i];
  83. freqInNou = i;
  84. }
  85. } //
  86. for (int i = 0; i < TEN; ++i) {
  87. //cout << freq[i]<< " " << i << "\n"; // lfrecventa la numerul creat
  88. }
  89. // cout << numbCreate << " " << freqInNou << "<- al doilea numar cel creat + cea mai frecventa cifra sau cea mai mare \n";
  90. char newNN[MAX_LENGTH] = {0}, reverseN[MAX_LENGTH];
  91. int aux = length1;
  92. // index = 89;
  93.  
  94. for (int i = 0; i < TEN; ++i) {
  95. //cout << freqN[n[i]] <<" ";
  96.   // cout << freqN[i] <<" "; // aparitiile cifrelor din N
  97.  }
  98.  
  99. //cout << freqN[n[0] - 48] << freqN[n[1] - 48] << freqN[n[2] - 48];
  100. // cout << numbCreate<< "<- ";
  101. //for(int i = 0; i < TEN; ++i) {
  102. // cout << freq[i] <<" ";
  103. // }
  104. // cout << numbCreate <<"<- ";
  105. for ( int i = 0; i < length1; ++i) { // 1234
  106. // cout << freqN[n[i] - '0'] <<" " << n[i] <<" \n";
  107. for (int j = 0; j < index; ++j) { // 40432991
  108. //cout << freqN[j] << " " << j << "\n"; //<< freqN[i] <<"\n";
  109. //cout << n[i] <<" " << numbCreate[j] << " " <<i<<"<- \n"; // ar trebui sa se afiseze noul numar la fel ca N
  110. if (n[i] == numbCreate[j] && freqN[n[i] - '0'] != 0 && freq[numbCreate[j] - '0'] != 0) {
  111. newNN[aux - 1] = n[i];
  112. //cout << newNN[aux - 1] <<" " << aux <<"<- \n"; // ar trebui sa se afiseze noul numar la fel ca N
  113. --freqN[n[i] - '0'];
  114. --freq[numbCreate[j] - '0'];
  115. --aux;
  116. j = index;
  117. }
  118. //
  119. }
  120. //cout << "\n";
  121. }
  122. //cout << newNN;
  123. //cout << aux; // AUX-> Este 0
  124. for (int i = 0; i < TEN; ++i) {
  125.   // cout << freqN[i] <<" "; // aparitiile cifrelor din N dupa formarea lui al 2 lea N
  126.  }
  127.  for (int i = 0; i < length1; ++i) {
  128.  // cout << newNN[i] <<" " << i << "\n";
  129.  }
  130. // cout << newNN << " " << n;
  131. int flag = 1;
  132. aux = length1;
  133. for (int i = 0, j = length1 - 1; i < aux; ++i, --j) {
  134. // cout << newNN[i] <<" \n";
  135. //cout << newNN[j] << " " << i << " " << n[i] <<"\n";
  136. if (newNN[j] != n[i]) {
  137. // cout << reverseN[j] << "<> " << i << " " << n[i] <<"\n";
  138. flag = 0;
  139. }
  140. }
  141. //cout << newNN[1] << "<- FLAG " << "\n";
  142. if (flag == 1) { // strcmp(newNN , n) == 0
  143. if (newNN[0] == '0') {
  144. for (int i = 1; i < length1; ++i) {
  145. cout << newNN[i] << ",";
  146. }
  147. } else {
  148. cout << newNN << ".";; ;
  149. }
  150. //cout << newNN << "";; ;
  151. } else {
  152. cout << desInN << " " << freqInNou;
  153. }
  154.  */
  155. //cout << desInN << " " << freqInNou;
  156. //cout << numbCreate <<" \n" << newNN << " \n" << n;
  157. return 0;
  158. }
Success #stdin #stdout 0.01s 5288KB
stdin
1234
012356789012356789 012356789 
stdout
4 9