Advertisement
Korotkodul

CF D

Aug 1st, 2022
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <vector>
  4. #include <queue>
  5. #include <algorithm>
  6. #include <string>
  7. #include <stack>
  8. #include <set>
  9. #include <map>
  10. #define pii pair <int,int>
  11. #define vec vector
  12. using namespace std;
  13. using ll = long long;
  14. using ld = long double;
  15. using db = double;
  16. void cv(vector <int> &v){
  17.     for (auto x: v) cout<<x<<' ';
  18.     cout<<"\n";
  19. }
  20.  
  21. void cvl(vector <ll> &v){
  22.     for (auto x: v) cout<<x<<' ';
  23.     cout<<"\n";
  24. }
  25.  
  26.  
  27. void cvv(vector <vector <int> > &v){
  28.     for (auto x: v) cv(x);
  29.     cout<<"\n";
  30. }
  31.  
  32. void cvb(vector <bool> v){
  33.     for (bool x: v) cout<<x<<' ';
  34.     cout<<"\n";
  35. }
  36.  
  37. void cvs(vector <string>  v){
  38.     for (auto a: v){
  39.         cout<<a<<"\n";
  40.     }
  41. }
  42.  
  43. void cvp(vector <pii> a){
  44.     for (auto p: a){
  45.         cout<<p.first<<' '<<p.second<<"\n";
  46.     }
  47.     cout<<"\n";
  48. }
  49.  
  50.  
  51. string t;
  52. int n;
  53. vector <string> sv;
  54.  
  55. struct in{
  56.     int fr,  ln,  ids;
  57. };
  58.  
  59. bool cmp(in a, in b){
  60.     return a.fr < b.fr && a.fr == b.fr && a.ln > b.ln;
  61. }
  62.  
  63. void slv(){
  64.     cin>>t>>n;
  65.     sv.resize(n);
  66.     for (string &i: sv) cin>>i;
  67.     vector <in> al;
  68.     in x;
  69.     int id=-1;
  70.     for (string s: sv){
  71.         id++;
  72.         for (int i = 0; i < t.size() - s.size(); --i){
  73.             if (t.substr(i, s.size()) == s){
  74.                 x = {i, s.size(), id};
  75.                 al.push_back(x);
  76.             }
  77.         }
  78.     }
  79.     sort(al.begin(), al.end(), cmp);
  80.     int from=0,to=0;
  81.     id=0;//ЖАДНОСТЬ
  82.     while (to < t.size() - 1){
  83.         vector <pii> now; //{длина за зоной изведанного, id из al
  84.         id = from;
  85.         while (al[id].fr <= to){
  86.  
  87.             id++;
  88.         }
  89.         from++;
  90.     }
  91. }
  92.  
  93.  
  94. int main()
  95. {
  96.     ios::sync_with_stdio(0);
  97.     cin.tie(0);
  98.     cout.tie(0);
  99.     int q; cin>>q;
  100.     for (int go=0;go<q;++go){
  101.         slv();
  102.     }
  103. }
  104.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement