pastebin

Paste Search Dynamic
Recent pastes
rec
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5.         string rec;
  6.         int n;
  7.         cin >> rec >> n;
  8.         vector<int>kmp(rec.size());
  9.         kmp[0] = 0;
  10.         for(int i = 1; i < rec.size(); i++) {
  11.                 int k = kmp[i - 1];
  12.                 while(true) {
  13.                         if(rec[i] == rec[k]) {
  14.                                 kmp[i] = k + 1;
  15.                                 break;
  16.                         }
  17.                         else if(k == 0) {
  18.                                 kmp[i] = 0;
  19.                                 break;
  20.                         }
  21.                         else k = kmp[k - 1];
  22.                 }
  23.         }
  24.         int ps = kmp[rec.size() - 1];
  25.         cout << ps + n * (rec.size() - ps) << endl;
  26.         return 0;
  27. }
Parsed in 0.007 seconds