Advertisement
tuki2501

bank.cpp

Jan 9th, 2022
1,209
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. typedef long long ll;
  5.  
  6. int cnt[10][10][10][10];
  7.  
  8. signed main() {
  9.   cin.tie(0)->sync_with_stdio(0);
  10.   int n; cin >> n;
  11.   for (int i = 0; i < n; i++) {
  12.     int sz; string s;
  13.     cin >> sz >> s;
  14.     vector<vector<int>> nxt(sz, vector<int>(10, -1));
  15.     for (int j = sz - 1; j >= 0; j--) {
  16.       if (j + 1 < sz) {
  17.         for (int k = 0; k <= 9; k++) {
  18.           nxt[j][k] = nxt[j + 1][k];
  19.         }
  20.       }
  21.       nxt[j][s[j] - '0'] = j;
  22.     }
  23.     vector<int> dig(4);
  24.     for (dig[0] = 0; dig[0] <= 9; dig[0]++)
  25.     for (dig[1] = 0; dig[1] <= 9; dig[1]++)
  26.     for (dig[2] = 0; dig[2] <= 9; dig[2]++)
  27.     for (dig[3] = 0; dig[3] <= 9; dig[3]++) {
  28.       bool flag = false;
  29.       int p = 0;
  30.       for (int j = 0; j < 4; j++) {
  31.         if (p >= sz || nxt[p][dig[j]] == -1) {
  32.           flag = true;
  33.           break;
  34.         }
  35.         p = nxt[p][dig[j]];
  36.       }
  37.       if (!flag) cnt[dig[0]][dig[1]][dig[2]][dig[3]]++;
  38.     }
  39.   }
  40.   int ans = 0;
  41.   for (int i = 0; i <= 9; i++)
  42.   for (int j = 0; j <= 9; j++)
  43.   for (int k = 0; k <= 9; k++)
  44.   for (int l = 0; l <= 9; l++) {
  45.     if (cnt[i][j][k][l] == n) ans++;
  46.   }
  47.   cout << ans << '\n';
  48. }
  49.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement