CSES - Datatähti 2023 loppu - Results
Submission details
Task:Merkkijonot
Sender:xenial
Submission time:2023-01-21 16:26:39 +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.01 s1, 2, 3details
#40.01 s1, 2, 3details
#5ACCEPTED0.00 s2, 3details
#6ACCEPTED0.00 s2, 3details
#7ACCEPTED0.04 s2, 3details
#8--2, 3details
#9ACCEPTED0.00 s3details
#10--3details
#11--3details
#12--3details
#130.00 s3details
#14ACCEPTED0.00 s3details
#15--2, 3details
#16--3details

Compiler report

input/code.cpp: In function 'long long int dfs(int, std::vector<bool>, int, int)':
input/code.cpp:17:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |     for (int i = cur + 1; i < counts.size(); i++) {
      |                           ~~^~~~~~~~~~~~~~~
input/code.cpp: In function 'int main()':
input/code.cpp:59: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]
   59 |     for (int i = 0; i < counts.size() - 1; i++){
      |                     ~~^~~~~~~~~~~~~~~~~~~

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;

ll dfs(int cur, vector<bool> vis, int ac, int bc) {
    if (vis[cur]) return 0;
    vis[cur] = true;
    ll ans = 0;

    for (int i = cur + 1; i < counts.size(); i++) {
        if (vis[i] || cur == i) continue;

        if (ac + counts[i].fi > tac || bc + counts[i].se > tbc) continue;
        if (ac + counts[i].fi == tac && bc + counts[i].se == tbc) {
            ans += 1;
            ans %= 1000000007;
            continue;
        }
        
        ans = (ans + dfs(i, vis, ac + counts[i].fi, bc + counts[i].se)) % 1000000007;
    }

    return ans;
}

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++){
        ans = (ans + dfs(i, vector<bool>(counts.size()), counts[i].fi, counts[i].se)) % 1000000007;
    }

    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)