Submission details
Task:Alphabet Accumulation
Sender:ollpu
Submission time:2018-09-20 16:45:13 +0300
Language:C++
Status:READY
Result:ACCEPTED
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.06 sdetails
#3ACCEPTED0.06 sdetails
#4ACCEPTED0.10 sdetails
#5ACCEPTED0.10 sdetails
#6ACCEPTED0.07 sdetails
#7ACCEPTED0.07 sdetails
#8ACCEPTED0.09 sdetails
#9ACCEPTED0.08 sdetails
#10ACCEPTED0.08 sdetails

Code

#include <bits/stdc++.h>
using namespace std;
vector<int> z[26][101010];
int ff[101010];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  string s, t[m];
  cin >> s;
  int res = 0;
  for (int i = 0; i < m; ++i) {
    cin >> t[i];
    vector<int> r(26);
    for (char c : t[i]) r[c-'a']++;
    for (int j = 0; j < 26; ++j) {
      if (!r[j]) ff[i]++;
      else z[j][r[j]].push_back(i);
    }
    if (ff[i] == 26) res++;
  }
  vector<int> r(26);
  for (int i = 0; i < n; ++i) {
    int x = s[i]-'a';
    r[x]++;
    for (int j : z[x][r[x]]) {
      ff[j]++;
      if (ff[j] == 26) res++;
    }
    cout << res << " ";
  }
  cout << endl;
}

Test details

Test 1

Verdict: ACCEPTED

input
3 3
aab
aa
ba
bb

correct output
0 1 2 

user output
0 1 2 

Test 2

Verdict: ACCEPTED

input
100 10
facdeebdaeffeadfdccgecbbegfdff...

correct output
0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 ...

user output
0 0 0 0 0 0 2 2 2 2 2 2 2 2 2 ...
Truncated

Test 3

Verdict: ACCEPTED

input
100 50
gggggfgggfggeggeggafgfffgggfgg...

correct output
0 0 0 0 0 3 3 3 3 4 4 4 29 29 ...

user output
0 0 0 0 0 3 3 3 3 4 4 4 29 29 ...
Truncated

Test 4

Verdict: ACCEPTED

input
100000 100000
yzxyzzyywyyzzyzwwzwytyzzyxxxyy...

correct output
17 18 18 18 18 18 18 18 2197 2...

user output
17 18 18 18 18 18 18 18 2197 2...
Truncated

Test 5

Verdict: ACCEPTED

input
100000 100000
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz...

correct output
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...

user output
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 ...
Truncated

Test 6

Verdict: ACCEPTED

input
100000 20
ccacccbaccccacacacacaaacaccccc...

correct output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
Truncated

Test 7

Verdict: ACCEPTED

input
100000 20
rypyjiljrkjrhsbohtbvacxnfyucvi...

correct output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
Truncated

Test 8

Verdict: ACCEPTED

input
100000 32258
ztixcicqghqttowabnxvulwngxzpsm...

correct output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
Truncated

Test 9

Verdict: ACCEPTED

input
100000 32258
zzzyzzzzzzzzzzzyzzzzzzzzzzzyzz...

correct output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...

user output
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...
Truncated

Test 10

Verdict: ACCEPTED

input
100000 30488
rsrlsoassssrrsssrrrssrssrsrrss...

correct output
1 2 2 2 2 4 5 5 5 5 5 5 5 5 5 ...

user output
1 2 2 2 2 4 5 5 5 5 5 5 5 5 5 ...
Truncated