Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define NM 1700
  3. using namespace std;
  4. ifstream fin ("dir.in");
  5. ofstream fout ("dir.out");
  6. typedef char fisier[260];
  7. void initializare(fisier x)
  8. {
  9. for(int i=0; x[i]; i++)
  10. x[i] = 0;
  11. }
  12. fisier s[105], aux;
  13. char c[NM];
  14. int n, k;
  15. multiset<string> rez;
  16. int main()
  17. {
  18. fin.getline(c, NM);
  19. n = strlen(c);
  20. for(int i=0; i<n; i++)
  21. {
  22. if(isupper(c[i]))
  23. {
  24. ++k;
  25. int j;
  26. for(j = i;isupper(c[j]) or isdigit(c[j]); j++)
  27. strncat(s[k], c+j, 1);
  28. i = j-1;
  29. }
  30. else if(islower(c[i]))
  31. {
  32. initializare(aux);
  33. ++k;
  34. int j = i;
  35. for(; islower(c[j]) or isdigit(c[j]); j++)
  36. strncat(s[k], c+j, 1);
  37. i = j-1;
  38. for(int j=1; j<=k; j++)
  39. {
  40. strcat(aux, s[j]);
  41. if(j!=k)
  42. strcat(aux, "\\");
  43. }
  44. string str(aux);
  45. rez.insert(str);
  46. initializare(s[k]);
  47. k--;
  48. }
  49. else if(c[i] == ')')
  50. {
  51. initializare(s[k]);
  52. k--;
  53. }
  54. }
  55. fout << rez.size() << '\n';
  56. multiset<string>::iterator it;
  57. for(it = rez.begin(); it!=rez.end(); it++)
  58. fout << *it << '\n';
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement