fork(1) 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 << n << " <- N\n" ;
  14. for (int i = 0; i < length1; ++i) {
  15. ++freqN[n[i] - 48];
  16. }
  17. //for (int i = 0; i < TEN; ++i) {
  18. // cout << freqN[i]<< " " << i << "\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];
  32. int index = 0;
  33. while (cin.getline(linie, MAX_LENGTH)) {
  34. int length = strlen(linie);
  35. for (int i = 0; i < length; ++i){
  36. if (linie[i] >= 48 && linie[i] <= 57) {
  37. numbCreate[index] = linie[i];
  38. //cout << linie[i] <<"<-\n";
  39. //cout << linie[i] << " " << numbCreate[index] << " <-1\n";
  40. //numbCreate = numbCreate * TEN + linie[i] - 48;
  41. ++freq[numbCreate[index] - 48];
  42. //cout << numbCreate << " \n";
  43. ++index;
  44. }
  45. }
  46. //cout << linie << " <- LINIE\n";
  47. }
  48. // cout << index << "<- INDEX\n";
  49.  
  50. // n = 12342
  51. // nrNou = 4013589
  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.  
  60. //cout << numbCreate << " " << freqInNou << "<- al doilea numar cel creat + cea mai frecventa cifra sau cea mai mare \n";
  61. char newNN[MAX_LENGTH], reverseN[MAX_LENGTH];
  62. int aux = length1;
  63. // index = 89;
  64.  
  65. for (int i = 0; i < TEN; ++i) {
  66. cout << freqN[i] <<" "; // aparitiile cifrelor din N
  67. }
  68.  
  69. for ( int i = 0; i < length1; ++i) { // 1234
  70. for (int j = 0; j < index; ++j) { // 40432991
  71. //cout << n[i] <<" " << numbCreate[j] << " " <<i<<"<- \n"; // ar trebui sa se afiseze noul numar la fel ca N
  72. if (n[i] == numbCreate[j] && freqN[j] != 0) {
  73. newNN[aux - 1] = n[i];
  74. // cout << newNN[aux - 1] <<" " << aux <<"<- \n"; // ar trebui sa se afiseze noul numar la fel ca N
  75. --freqN[j];
  76. --aux;
  77. }
  78. //
  79. }
  80.  
  81. }
  82. cout << "\n";
  83. //cout << aux;
  84. for (int i = 0; i < TEN; ++i) {
  85. cout << freqN[i] <<" "; // aparitiile cifrelor din N dupa formarea lui al 2 lea N
  86. }
  87. for (int i = 0; i < length1; ++i) {
  88. // cout << newNN[i] <<" " << i << "\n";
  89. }
  90. // cout << newNN << " " << n;
  91. int flag = 1;
  92. for (int i = 0, j = length1 - 1; i < aux; ++i, --j) {
  93. // cout << newNN[i] <<" \n";
  94. // cout << reverseN[j] << " " << i << " " << n[i] <<"\n";
  95. if (newNN[j] != n[i]) {
  96. // cout << reverseN[j] << "<> " << i << " " << n[i] <<"\n";
  97. flag = 0;
  98. }
  99. }
  100. //cout << flag << " " << reverseN << "\n";
  101. if (flag == 1) { // strcmp(newNN , n) == 0
  102.  
  103. // cout << newNN << "<>";; ;
  104. } else {
  105. // cout << desInN << " " << freqInNou;
  106. }
  107.  
  108. //cout << desInN << " " << freqInNou;
  109. //cout << numbCreate <<" \n" << newNN << " \n" << n;
  110. return 0;
  111. }
Success #stdin #stdout 0s 5320KB
stdin
159
sdfhsdrgtsdghsgashadgf34645756utrye5yrutry54y56y
ery4574546yu54y5rhrty45u57y745y
fdgy54y45t654y4t34r523454236468679
urtgh4575785676547678i67uytrhyrt5543524123111524
stdout
0 1 0 0 0 1 0 0 0 1 
0 1 0 0 0 1 0 0 0 0