CSES - Datatähti 2023 loppu - Results
Submission details
Task:Merkkijonot
Sender:xenial
Submission time:2023-01-21 16:48:37 +0200
Language:C++ (C++17)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.00 s1, 2, 3details
#3ACCEPTED0.00 s1, 2, 3details
#40.00 s1, 2, 3details
#5ACCEPTED0.00 s2, 3details
#6ACCEPTED0.00 s2, 3details
#7ACCEPTED0.01 s2, 3details
#80.88 s2, 3details
#9ACCEPTED0.00 s3details
#100.95 s3details
#110.88 s3details
#120.85 s3details
#130.00 s3details
#14ACCEPTED0.00 s3details
#150.88 s2, 3details
#160.85 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:39:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   39 |     for (int i = 0; i < counts.size() - 1; i++) {
      |                     ~~^~~~~~~~~~~~~~~~~~~
input/code.cpp:47:40: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |             for (int j = cur.fi + 1; j < counts.size(); j++) {
      |                                      ~~^~~~~~~~~~~~~~~

Code

#include <bits/stdc++.h>
#define pb push_back
#define ii pair<int,int>
#define fi first
#define se second
#define ll long long
using namespace std;

int N, tac, tbc;
vector<ii> counts;

int main() {
    ios_base::sync_with_stdio(false);

    cin >> N;

    tac = 0, tbc = 0;

    while (N--) {
        string s; cin >> s;
        int ac = 0, bc = 0;

        for (auto c : s) {
            if (c == 'a') ac++;
            else bc++;
        }

        tac += ac;
        tbc += bc;

        counts.pb(ii(ac, bc));
    }

    tac /= 2;
    tbc /= 2;

    ll ans = 0;

    for (int i = 0; i < counts.size() - 1; i++) {
        queue<pair<int, ii>> q;
        q.push(make_pair(i, counts[i]));

        while(!q.empty()) {
            auto cur = q.front();
            q.pop();

            for (int j = cur.fi + 1; j < counts.size(); j++) {
                if (cur.se.fi + counts[j].fi > tac || cur.se.se + counts[j].se > tbc) continue;
                if (cur.se.fi + counts[j].fi == tac && cur.se.se + counts[j].se == tbc) {
                    ans = (ans + 1) % 1000000007;
                    continue;
                }

                q.push(make_pair(j, ii(cur.se.fi + counts[j].fi, cur.se.se + counts[j].se)));
            }
        }
    }

    cout << ans << endl;

    return 0;
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
4
b
bbb
baabaabaa
aab

correct output
0

user output
0

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
8
b
bb
baa
a
...

correct output
12

user output
12

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
16
a
a
a
b
...

correct output
5040

user output
5040

Test 4

Group: 1, 2, 3

Verdict:

input
16
b
b
a
a
...

correct output
0

user output
4410

Test 5

Group: 2, 3

Verdict: ACCEPTED

input
5
bab
bbaaabbabbbaababbbabbabaaabaaa...

correct output
0

user output
0

Test 6

Group: 2, 3

Verdict: ACCEPTED

input
10
baabbbababbbabbaaaabab
aabaaabbbab
aaaabbabab
aab
...

correct output
2

user output
2

Test 7

Group: 2, 3

Verdict: ACCEPTED

input
20
aaaab
baaab
babb
b
...

correct output
4332

user output
4332

Test 8

Group: 2, 3

Verdict:

input
100
a
b
a
b
...

correct output
433105324

user output
(empty)

Test 9

Group: 3

Verdict: ACCEPTED

input
10
aaaabbabbaabbaaaabbbbabaaaabab...

correct output
0

user output
0

Test 10

Group: 3

Verdict:

input
50
aaba
aaa
abbbbaaba
ababbabbabab
...

correct output
636733956

user output
(empty)

Test 11

Group: 3

Verdict:

input
100
ba
bbbaba
bbba
bb
...

correct output
264657218

user output
(empty)

Test 12

Group: 3

Verdict:

input
500
a
b
b
b
...

correct output
394045503

user output
(empty)

Test 13

Group: 3

Verdict:

input
2
bbbababaaaabbbaaaaaaabbabbbaab...

correct output
2

user output
0

Test 14

Group: 3

Verdict: ACCEPTED

input
1
bbbaaaabaabbbababbbbbbbbabbbaa...

correct output
0

user output
0

Test 15

Group: 2, 3

Verdict:

input
100
a
a
a
a
...

correct output
538992043

user output
(empty)

Test 16

Group: 3

Verdict:

input
500
a
a
a
a
...

correct output
515561345

user output
(empty)