CSES - Datatähti 2025 alku - Results
Submission details
Task:Niitty
Sender:AH
Submission time:2024-11-08 01:53:21 +0200
Language:C++ (C++20)
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
#40
#50
#60
Test results
testverdicttimegroup
#10.18 s1, 2, 3, 4, 5, 6details
#20.18 s1, 2, 3, 4, 5, 6details
#30.19 s1, 2, 3, 4, 5, 6details
#40.18 s1, 2, 3, 4, 5, 6details
#50.19 s1, 2, 3, 4, 5, 6details
#60.19 s2, 3, 4, 5, 6details
#70.18 s2, 3, 4, 5, 6details
#80.18 s2, 3, 4, 5, 6details
#90.19 s2, 3, 4, 5, 6details
#100.18 s3, 4, 5, 6details
#110.19 s3, 4, 5, 6details
#120.18 s3, 4, 5, 6details
#130.18 s3, 4, 5, 6details
#140.19 s4, 5, 6details
#150.20 s4, 5, 6details
#160.19 s4, 5, 6details
#170.19 s4, 5, 6details
#180.20 s5, 6details
#190.24 s5, 6details
#200.20 s5, 6details
#210.33 s5, 6details
#220.43 s6details
#230.70 s6details
#240.41 s6details
#25--6details

Code

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

#define FOR(i,a,b) for (int i = a; i < b; i++)

int cta(int* const ta, const int n) {
    int ic=0;
    int f=0;
    FOR(i,0,n) {
        string t;
        cin >> t;
        for (char c : t) {
            ta[ic] = (1<<(c-65));
            f |= (1<<(c-65));
            ic++;
        }
        FOR(k,1,n) {
            FOR(l,0,n-k) {
                ta[ic] = ta[ic-(n-k)-1] | ta[ic-(n-k)];
                ic++;
            }
        }
    }
    return f;
}

ll cc(const int* const ta, const int n, const int f) {
    ll r = 0;
    int cor = 0;
    bool cf = false;
    const int tc = (n*(n+1))/2;
    FOR(i,0,tc) {
        FOR(j,0,n) {
            FOR(k,j,n) {
                cor |= ta[(k*tc)+i];
                if (cor == f) {
                    r += n-k;
                    cf = true;
                    break;
                }
            }
            cor = 0;
            if (!cf) {
                break;
            }
        }
        cf = false;
    }
    return r;
}


int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n, f;
    auto* ta = new int[62625000]{0};
    cin >> n;
    auto begin1 = std::chrono::high_resolution_clock::now();

    f = cta(ta, n);

    auto end1 = std::chrono::high_resolution_clock::now();
    std::cout << std::chrono::duration_cast<std::chrono::nanoseconds>(end1-begin1).count() << "ns" << std::endl;
    auto begin2 = std::chrono::high_resolution_clock::now();

    cout << cc(ta, n, f) << "\n";

    auto end2 = std::chrono::high_resolution_clock::now();
    std::cout << std::chrono::duration_cast<std::chrono::nanoseconds>(end2-begin2).count() << "ns" << std::endl;


}

Test details

Test 1

Group: 1, 2, 3, 4, 5, 6

Verdict:

input
10
TNCTNPNTPC
NPPNTNTPTP
NTNTTCNTCT
NPCPNPPNTT
...

correct output
2035

user output
7435ns
2035
8650ns

Test 2

Group: 1, 2, 3, 4, 5, 6

Verdict:

input
10
NFWQLWNWYS
DZOQJVXFPJ
CNHXPXMCQD
QRTBVNLTQC
...

correct output
9

user output
6829ns
9
3444ns

Test 3

Group: 1, 2, 3, 4, 5, 6

Verdict:

input
10
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
...

correct output
3025

user output
7010ns
3025
2880ns

Test 4

Group: 1, 2, 3, 4, 5, 6

Verdict:

input
10
FFFFFFFFFF
FFFFFCFFFF
FFFFFFJFFF
FFFFFFFFFF
...

correct output
12

user output
7341ns
12
3518ns

Test 5

Group: 1, 2, 3, 4, 5, 6

Verdict:

input
1
X

correct output
1

user output
3449ns
1
1780ns

Test 6

Group: 2, 3, 4, 5, 6

Verdict:

input
20
BBCBUBOUOBBCUUBBCOUO
BOUCOOCUBCOOOCOBOCUO
UCCUUUOBCOCBCBUBUCOO
BUOBUCUCUOOBCOOUBUOO
...

correct output
38724

user output
18112ns
38724
35119ns

Test 7

Group: 2, 3, 4, 5, 6

Verdict:

input
20
CBGLSHGZHYZDWBNDBJUG
SMUXOJQYPXZDTMJUIWOJ
XIDSTNBGHKRKOVUVMINB
MTQGCFRUHQKALXRNCQGS
...

correct output
8334

user output
19952ns
8334
39172ns

Test 8

Group: 2, 3, 4, 5, 6

Verdict:

input
20
KKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKK
KKKKKKKKKKKKKKKKKKKK
...

correct output
44100

user output
17696ns
44100
8087ns

Test 9

Group: 2, 3, 4, 5, 6

Verdict:

input
20
AAAAAAAAXAAAAAAAAAAA
AAAWAAAAAAAAAAAAAOAA
AAAAAAAAAAAAAAAAAPAA
AAAAAAAAKAAAAAAAAAAZ
...

correct output
18

user output
18096ns
18
10334ns

Test 10

Group: 3, 4, 5, 6

Verdict:

input
50
GRGREEEGREGXRXXEGXXREXGRRRGRRR...

correct output
1584665

user output
74619ns
1584665
305045ns

Test 11

Group: 3, 4, 5, 6

Verdict:

input
50
AITIISJUHCCRZNKSDCNQKYSQRINFWJ...

correct output
1077746

user output
72493ns
1077746
980118ns

Test 12

Group: 3, 4, 5, 6

Verdict:

input
50
OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO...

correct output
1625625

user output
73179ns
1625625
110236ns

Test 13

Group: 3, 4, 5, 6

Verdict:

input
50
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...

correct output
1680

user output
80917ns
1680
194114ns

Test 14

Group: 4, 5, 6

Verdict:

input
100
NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM...

correct output
25325366

user output
441179ns
25325366
2223436ns

Test 15

Group: 4, 5, 6

Verdict:

input
100
LIMQQIHASECROEVILNVULGWZJPPKOG...

correct output
22342463

user output
431972ns
22342463
7752193ns

Test 16

Group: 4, 5, 6

Verdict:

input
100
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...

correct output
25502500

user output
470967ns
25502500
1392168ns

Test 17

Group: 4, 5, 6

Verdict:

input
100
QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
25650

user output
434679ns
25650
2477762ns

Test 18

Group: 5, 6

Verdict:

input
200
NAANANMMKNKKAKMKMAKNKMNKMMNNAA...

correct output
403292767

user output
2970948ns
403292767
12894715ns

Test 19

Group: 5, 6

Verdict:

input
200
OMYWATTLURKQPTKEFMGGYAOONXWVSC...

correct output
388111321

user output
3003585ns
388111321
48969713ns

Test 20

Group: 5, 6

Verdict:

input
200
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

correct output
404010000

user output
3009570ns
404010000
8936177ns

Test 21

Group: 5, 6

Verdict:

input
200
LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL...

correct output
14159445

user output
3012396ns
14159445
142960012ns

Test 22

Group: 6

Verdict:

input
500
VVHWVUHVHUWWWVUUUWVUUHUUWHWUVW...

correct output
15683003812

user output
42781402ns
15683003812
200941227ns

Test 23

Group: 6

Verdict:

input
500
OIMZGEQSBMBDSDXSWRFNKSGFEBBTJE...

correct output
15575906951

user output
43930948ns
15575906951
471671179ns

Test 24

Group: 6

Verdict:

input
500
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII...

correct output
15687562500

user output
42758130ns
15687562500
177130440ns

Test 25

Group: 6

Verdict:

input
500
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...

correct output
3058970930

user output
(empty)