| Task: | Niitty | 
| Sender: | Username* | 
| Submission time: | 2024-10-28 17:42:20 +0200 | 
| Language: | C++ (C++11) | 
| Status: | READY | 
| Result: | 0 | 
| group | verdict | score | 
|---|---|---|
| #1 | WRONG ANSWER | 0 | 
| #2 | WRONG ANSWER | 0 | 
| #3 | WRONG ANSWER | 0 | 
| #4 | WRONG ANSWER | 0 | 
| #5 | WRONG ANSWER | 0 | 
| #6 | WRONG ANSWER | 0 | 
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #2 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #3 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #4 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #5 | ACCEPTED | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #6 | WRONG ANSWER | 0.01 s | 2, 3, 4, 5, 6 | details | 
| #7 | WRONG ANSWER | 0.01 s | 2, 3, 4, 5, 6 | details | 
| #8 | ACCEPTED | 0.01 s | 2, 3, 4, 5, 6 | details | 
| #9 | WRONG ANSWER | 0.01 s | 2, 3, 4, 5, 6 | details | 
| #10 | WRONG ANSWER | 0.02 s | 3, 4, 5, 6 | details | 
| #11 | WRONG ANSWER | 0.08 s | 3, 4, 5, 6 | details | 
| #12 | ACCEPTED | 0.01 s | 3, 4, 5, 6 | details | 
| #13 | WRONG ANSWER | 0.03 s | 3, 4, 5, 6 | details | 
| #14 | WRONG ANSWER | 0.10 s | 4, 5, 6 | details | 
| #15 | WRONG ANSWER | 0.63 s | 4, 5, 6 | details | 
| #16 | ACCEPTED | 0.04 s | 4, 5, 6 | details | 
| #17 | WRONG ANSWER | 0.26 s | 4, 5, 6 | details | 
| #18 | WRONG ANSWER | 0.90 s | 5, 6 | details | 
| #19 | TIME LIMIT EXCEEDED | -- | 5, 6 | details | 
| #20 | ACCEPTED | 0.22 s | 5, 6 | details | 
| #21 | TIME LIMIT EXCEEDED | -- | 5, 6 | details | 
| #22 | TIME LIMIT EXCEEDED | -- | 6 | details | 
| #23 | TIME LIMIT EXCEEDED | -- | 6 | details | 
| #24 | TIME LIMIT EXCEEDED | -- | 6 | details | 
| #25 | TIME LIMIT EXCEEDED | -- | 6 | details | 
Code
#include <iostream>
#include <vector>
#include <unordered_set>
#include <unordered_map>
using namespace std;
const int MAX = 500;
int prefix[26][MAX + 1][MAX + 1];
bool hasAll(const unordered_map<char, int>& count, const unordered_set<char>& set) {
    for (char species : set) {
        if (count.at(species) == 0) {
            return false;
        }
    }
    return true;
}
int main() {
    int n;
    cin >> n;
    vector<string> meadow(n);
    unordered_set<char> set;
    for (int i = 0; i < n; ++i) {
        cin >> meadow[i];
        for (int j = 0; j < n; ++j) {
            set.insert(meadow[i][j]);
        }
    }
    for (int s = 0; s < 26; ++s) {
        for (int i = 0; i <= n; ++i) {
            for (int j = 0; j <= n; ++j) {
                prefix[s][i][j] = 0;
            }
        }
    }
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            int sindex = meadow[i][j] - 'A';
            for (int s = 0; s < 26; ++s) {
                prefix[s][i + 1][j + 1] = prefix[s][i + 1][j] + prefix[s][i][j + 1]
                    - prefix[s][i][j] + (s == sindex ? 1 : 0);
            }
        }
    }
    int count = 0;
    for (int top = 0; top < n; ++top) {
        for (int bottom = top; bottom < n; ++bottom) {
            unordered_map<char, int> scount;
            for (char species : set) {
                scount[species] = 0;
            }
            int left = 0;
            for (int right = 0; right < n; ++right) {
                for (char species : set) {
                    int index = species - 'A';
                    int incol = prefix[index][bottom + 1][right + 1]
                        - prefix[index][top][right + 1];
                    scount[species] = incol;
                }
                while (left <= right && hasAll(scount, set)) {
                    count += (n - right);
                    left++;
                    for (char species : set) {
                        int index = species - 'A';
                        int incol = prefix[index][bottom + 1][left]
                            - prefix[index][top][left];
                        scount[species] -= incol;
                    }
                }
            }
        }
    }
    cout << count << endl;
    return 0;
}
Test details
Test 1
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 10 TNCTNPNTPC NPPNTNTPTP NTNTTCNTCT NPCPNPPNTT ...  | 
| correct output | 
|---|
| 2035 | 
| user output | 
|---|
| 2287 | 
Test 2
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 10 NFWQLWNWYS DZOQJVXFPJ CNHXPXMCQD QRTBVNLTQC ...  | 
| correct output | 
|---|
| 9 | 
| user output | 
|---|
| 21 | 
Test 3
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input | 
|---|
| 10 XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX ...  | 
| correct output | 
|---|
| 3025 | 
| user output | 
|---|
| 3025 | 
Test 4
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input | 
|---|
| 10 FFFFFFFFFF FFFFFCFFFF FFFFFFJFFF FFFFFFFFFF ...  | 
| correct output | 
|---|
| 12 | 
| user output | 
|---|
| 12 | 
Test 5
Group: 1, 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input | 
|---|
| 1 X  | 
| correct output | 
|---|
| 1 | 
| user output | 
|---|
| 1 | 
Test 6
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 20 BBCBUBOUOBBCUUBBCOUO BOUCOOCUBCOOOCOBOCUO UCCUUUOBCOCBCBUBUCOO BUOBUCUCUOOBCOOUBUOO ...  | 
| correct output | 
|---|
| 38724 | 
| user output | 
|---|
| 41846 | 
Test 7
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 20 CBGLSHGZHYZDWBNDBJUG SMUXOJQYPXZDTMJUIWOJ XIDSTNBGHKRKOVUVMINB MTQGCFRUHQKALXRNCQGS ...  | 
| correct output | 
|---|
| 8334 | 
| user output | 
|---|
| 11409 | 
Test 8
Group: 2, 3, 4, 5, 6
Verdict: ACCEPTED
| input | 
|---|
| 20 KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK ...  | 
| correct output | 
|---|
| 44100 | 
| user output | 
|---|
| 44100 | 
Test 9
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 20 AAAAAAAAXAAAAAAAAAAA AAAWAAAAAAAAAAAAAOAA AAAAAAAAAAAAAAAAAPAA AAAAAAAAKAAAAAAAAAAZ ...  | 
| correct output | 
|---|
| 18 | 
| user output | 
|---|
| 20 | 
Test 10
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 50 GRGREEEGREGXRXXEGXXREXGRRRGRRR...  | 
| correct output | 
|---|
| 1584665 | 
| user output | 
|---|
| 1613887 | 
Test 11
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 50 AITIISJUHCCRZNKSDCNQKYSQRINFWJ...  | 
| correct output | 
|---|
| 1077746 | 
| user output | 
|---|
| 1215650 | 
Test 12
Group: 3, 4, 5, 6
Verdict: ACCEPTED
| input | 
|---|
| 50 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO...  | 
| correct output | 
|---|
| 1625625 | 
| user output | 
|---|
| 1625625 | 
Test 13
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 50 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...  | 
| correct output | 
|---|
| 1680 | 
| user output | 
|---|
| 2576 | 
Test 14
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 100 NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM...  | 
| correct output | 
|---|
| 25325366 | 
| user output | 
|---|
| 25464665 | 
Test 15
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 100 LIMQQIHASECROEVILNVULGWZJPPKOG...  | 
| correct output | 
|---|
| 22342463 | 
| user output | 
|---|
| 23643774 | 
Test 16
Group: 4, 5, 6
Verdict: ACCEPTED
| input | 
|---|
| 100 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...  | 
| correct output | 
|---|
| 25502500 | 
| user output | 
|---|
| 25502500 | 
Test 17
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 100 QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...  | 
| correct output | 
|---|
| 25650 | 
| user output | 
|---|
| 39697 | 
Test 18
Group: 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 200 NAANANMMKNKKAKMKMAKNKMNKMMNNAA...  | 
| correct output | 
|---|
| 403292767 | 
| user output | 
|---|
| 403885090 | 
Test 19
Group: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200 OMYWATTLURKQPTKEFMGGYAOONXWVSC...  | 
| correct output | 
|---|
| 388111321 | 
| user output | 
|---|
| (empty) | 
Test 20
Group: 5, 6
Verdict: ACCEPTED
| input | 
|---|
| 200 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...  | 
| correct output | 
|---|
| 404010000 | 
| user output | 
|---|
| 404010000 | 
Test 21
Group: 5, 6
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 200 LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL...  | 
| correct output | 
|---|
| 14159445 | 
| user output | 
|---|
| (empty) | 
Test 22
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 500 VVHWVUHVHUWWWVUUUWVUUHUUWHWUVW...  | 
| correct output | 
|---|
| 15683003812 | 
| user output | 
|---|
| (empty) | 
Test 23
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 500 OIMZGEQSBMBDSDXSWRFNKSGFEBBTJE...  | 
| correct output | 
|---|
| 15575906951 | 
| user output | 
|---|
| (empty) | 
Test 24
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 500 IIIIIIIIIIIIIIIIIIIIIIIIIIIIII...  | 
| correct output | 
|---|
| 15687562500 | 
| user output | 
|---|
| (empty) | 
Test 25
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 500 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...  | 
| correct output | 
|---|
| 3058970930 | 
| user output | 
|---|
| (empty) | 
