Guest User

Untitled

a guest
Jul 16th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.88 KB | None | 0 0
  1. #include <fstream>
  2. #include <string.h>
  3. #include <vector>
  4. #include <map>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. struct fWord
  10. {
  11. char *cuv; int indice;
  12. vector<int> putere;
  13. };
  14.  
  15. bool comp(fWord a, fWord b)
  16. {
  17. for(size_t i = 0; i < min(a.putere.size(), b.putere.size()); i++)
  18. {
  19. if(a.putere[i] > b.putere[i])
  20. return true;
  21. if(a.putere[i] < b.putere[i])
  22. return false;
  23. }
  24. return a.indice < b.indice;
  25. }
  26.  
  27. const int MAX = 30050;
  28.  
  29. char line[MAX]; int maxim, nr;
  30. vector<fWord> final;
  31.  
  32. void getWords()
  33. {
  34. fWord add; vector<int> a; a.push_back(0);
  35. char *p, *s; p = strtok(line, " "); int i = -1;
  36. while(p)
  37. {
  38. i++;
  39. s = new char [strlen(p)]; strcpy(s, p);
  40. add.cuv = s; add.putere = a; add.indice = i;
  41. final.push_back(add);
  42. p = strtok(NULL, " ");
  43. }
  44. }
  45.  
  46. void prepare()
  47. {
  48. sort(final.begin(), final.end(), comp);size_t i;
  49. for(i = 0; i < final.size(); i++)
  50. if(final[i].putere[0] != maxim)
  51. break;
  52. nr = i;
  53. }
  54.  
  55. void afisare()
  56. {
  57. prepare();
  58. ofstream out("mesaje.out");
  59. out<<nr<<'\n';
  60. for(size_t i = 0; i < nr; i++)
  61. {
  62. reverse(final[i].cuv, final[i].cuv + strlen(final[i].cuv));
  63. out<<final[i].cuv<<" ";
  64. }
  65. out.close();
  66. }
  67.  
  68. int main()
  69. {
  70. ifstream in("mesaje.in");
  71. int i = 0, j; char *p;
  72. in.getline(line, MAX);
  73. getWords();
  74. while(in.getline(line, MAX))
  75. {
  76. i++; j = -1;
  77. p = strtok(line, " ");
  78. while(p)
  79. {
  80. j++;
  81. if(!strcmp(p, final[j].cuv))
  82. {
  83. vector<int>::iterator it; it = final[j].putere.begin();
  84. final[j].putere.insert(it, i);
  85. maxim = i;
  86. }
  87. p = strtok(NULL, " ");
  88. }
  89. }
  90. afisare();
  91. return 0;
  92. }
Add Comment
Please, Sign In to add comment