Advertisement
tumaryui

lab1_c++

Apr 27th, 2020
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. #define pb push_back
  4.  
  5. using namespace std;
  6.  
  7. void del(string aim, vector<string> &v, vector<string> &res) {
  8. for(int i = 0; i < v.size(); i++){
  9. if(v[i].find(aim) != string::npos) {
  10. res.pb(v[i]);
  11. v.erase(v.begin() + i);
  12. i--;
  13. }
  14. }
  15. }
  16. bool cmp1(string a, string b) {
  17. for(int i = 0; i < min(a.size(), b.size()); i++) {
  18. if(a[i] != b[i]) {
  19. return a[i] < b[i];
  20. }
  21. }
  22. return a.size() < b.size();
  23. }
  24. bool cmp2(string a, string b) {
  25. return a.size() < b.size();
  26. }
  27. main() {
  28. int n;
  29. cin >> n;
  30. vector<string> v(n);
  31. vector<string> res;
  32. getchar();
  33. for(int i = 0; i < n; i++) {
  34. getline(cin, v[i]);
  35. }
  36. string aim;
  37. cin >> aim;
  38. del(aim, v, res);
  39. cout << "Sort by(enter number):\n1)Alphabet\n2)Phrase length\n";
  40. int id;
  41. cin >> id;
  42. if(id) {
  43. sort(v.begin(), v.end(), cmp1);
  44. sort(res.begin(), res.end(), cmp1);
  45. } else {
  46. sort(v.begin(), v.end(), cmp2);
  47. sort(res.begin(), res.end(), cmp2);
  48. }
  49.  
  50. for(auto it: v) {
  51. cout << it << endl;
  52. }
  53. cout << " -------- ";
  54. for(auto it: res) {
  55. cout << it << endl;
  56. }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement