CSES - Datatähti 2023 loppu - Results
Submission details
Task:Merkkijonot
Sender:UpHereNorth
Submission time:2023-01-21 14:17:57 +0200
Language:C++17
Status:READY
Result:15
Feedback
groupverdictscore
#1ACCEPTED15
#20
#30
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3details
#2ACCEPTED0.00 s1, 2, 3details
#3ACCEPTED0.01 s1, 2, 3details
#4ACCEPTED0.00 s1, 2, 3details
#5ACCEPTED0.00 s2, 3details
#6ACCEPTED0.00 s2, 3details
#7ACCEPTED0.14 s2, 3details
#80.00 s2, 3details
#9ACCEPTED0.00 s3details
#100.08 s3details
#110.00 s3details
#12--3details
#13ACCEPTED0.00 s3details
#14ACCEPTED0.00 s3details
#150.00 s2, 3details
#16--3details

Code

#include <bits/stdc++.h>


using namespace std;
using ll = long long;


int main(){

    int n;
    cin >> n;
    vector<string> words(n+1);
    words[0] = "#";
    int sum =0;
    for(int i = 1; i <= n; ++i){
        cin>>words[i];
        sum += (int)words[i].size();
    }    

    if(sum%2){
        cout << "0\n";
        return 0;
    }

    vector<int> cnt(n+1);
    int tot_cnt = 0;
    for(int i = 1; i <= n; ++i){
        for(char c : words[i]){
            if(c=='a'){
                cnt[i]++;
                tot_cnt++;
            }
        }
    }

    if(tot_cnt%2){
        cout << "0\n";
        return 0;
    }

    ll ans = 0;

    for(int mask = 1; mask < (1<<(n+1)); ++mask){
        int siz = 0;
        int a = 0;

        for(int i = 1; i <= n; ++i){
            if(mask&(1<<i)){
                siz += (int)words[i].size();
                a += cnt[i];
            }
        }

        if(siz == sum/2 && a == tot_cnt/2){
            ans++;
        }
    }

    cout << ans/2 << "\n";





}

/*
DONT GIVE UP
DO SOMETHING INSTEAD OF NOTHING
CHECK ARRAY BOUNDS
SPECIAL CASES N=1
*/

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: ACCEPTED

input
16
b
b
a
a
...

correct output
0

user output
0

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
0

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
38

Test 11

Group: 3

Verdict:

input
100
ba
bbbaba
bbba
bb
...

correct output
264657218

user output
0

Test 12

Group: 3

Verdict:

input
500
a
b
b
b
...

correct output
394045503

user output
(empty)

Test 13

Group: 3

Verdict: ACCEPTED

input
2
bbbababaaaabbbaaaaaaabbabbbaab...

correct output
2

user output
2

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
0

Test 16

Group: 3

Verdict:

input
500
a
a
a
a
...

correct output
515561345

user output
(empty)