liartie

Untitled

Dec 24th, 2020
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. const int INF = 2e9;
  9.  
  10. struct edge{
  11.     int a, b, cap, flow;
  12.     edge(){}
  13. };
  14.  
  15. vector <vector <int> > g;
  16. vector <int> dist, ptr;
  17. vector <edge> e;
  18.  
  19. ostream &operator << (ostream &out, vector <vector <int> > v){
  20.     for(int i = 0; i < g.size(); i++){
  21.         out<<i<<": ";
  22.         for(int j = 0; j < g[i].size(); j++){
  23.             out<<g[i][j]<<" ";
  24.         }
  25.         out<<"\n";
  26.     }
  27.     return out;
  28. }
  29.  
  30. int main(){
  31.     int n;
  32.     string name;
  33.     cin>>n>>name;
  34.     g.resize(n + (int)name.size() + 2);
  35.     for(int k = 0; k < n; k++){
  36.         string s;
  37.         cin>>s;
  38.         for(int i = 0; i < s.size(); i++){
  39.             for(int j = 0; j < name.size(); j++){
  40.                 if(s[i] == name[j] && find(g[k + 1].begin(), g[k + 1].end(), n + j + 1) == g[k + 1].end()){
  41.                     g[k + 1].push_back(n + j + 1);
  42.                     break;
  43.                 }
  44.             }
  45.         }
  46.     }
  47.     for(int i = 0; i < n; i++){
  48.         g[0].push_back(i + 1);
  49.     }
  50.     for(int i = 0; i < name.size(); i++){
  51.         g[1 + n + i].push_back(g.size() - 1);
  52.     }
  53.     cout<<g;
  54.     n = g.size();
  55.    
  56.    
  57.     return 0;
  58. }
Advertisement
Add Comment
Please, Sign In to add comment