Advertisement
Josif_tepe

Untitled

Sep 23rd, 2022
914
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <stack>
  4. #include <algorithm>
  5. //#include <bits/stdc++.h>
  6. using namespace std;
  7. vector<string>s;
  8. int n;
  9.  
  10.  
  11.  
  12. bool compare_two_strings(string A, string B) {
  13.     vector<int> cntA(26, 0);
  14.     vector<int> cntB(26, 0);
  15.  
  16.  
  17.  
  18.    for(int i = 0; i < A.size(); i++) {
  19.         cntA[A[i] - 'A']++;
  20.     }
  21.     for(int i = 0; i < B.size(); i++) {
  22.         cntB[B[i] - 'A']++;
  23.     }
  24.     for(int i = 0; i < 26; i++) {
  25.         if(cntA[i] > cntB[i]) {
  26.             return false;
  27.         }
  28.     }
  29.   return true;
  30. }
  31.  
  32.  
  33.  
  34.  
  35. int dinamicko(int i){
  36. if(i==n){
  37.     return 0;
  38. }
  39. int result=0;
  40.  
  41.  
  42.  
  43. int k=s[i].size();
  44. for(int j=0; j<s.size(); j++){
  45. if(k+1==s[j].size()){
  46.     if(compare_two_strings(s[i], s[j])==true){
  47.        
  48.        result=max(result, dinamicko(j) + 1);
  49.     }
  50. }
  51. }
  52.     return result;
  53. }
  54. int main()
  55. {
  56. cin>>n;
  57. for(char A='A'; A<='Z'; A++){
  58.         string A1=" ";
  59.         A1+=A;
  60.     s.push_back(A1);
  61. }
  62. for(int i=0; i<n; i++){
  63.     string a;
  64.     cin>>a;
  65.     sort(a.begin(), a.end());
  66.     s.push_back(a);
  67.    
  68. }
  69.     sort(s.begin(), s.end());
  70.     int result = 0;
  71.     for(int i = 0; i < 26; i++) {
  72.         result = max(result, dinamicko(i) + 1);
  73.     }
  74.     cout << result  + 1<< endl;
  75.     return 0;
  76. }
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement