| Task: | Niitty | 
| Sender: | rottis | 
| Submission time: | 2024-11-05 13:10:56 +0200 | 
| Language: | C++ (C++17) | 
| 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 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #4 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #5 | WRONG ANSWER | 0.00 s | 1, 2, 3, 4, 5, 6 | details | 
| #6 | WRONG ANSWER | 0.00 s | 2, 3, 4, 5, 6 | details | 
| #7 | WRONG ANSWER | 0.00 s | 2, 3, 4, 5, 6 | details | 
| #8 | WRONG ANSWER | 0.00 s | 2, 3, 4, 5, 6 | details | 
| #9 | WRONG ANSWER | 0.00 s | 2, 3, 4, 5, 6 | details | 
| #10 | WRONG ANSWER | 0.00 s | 3, 4, 5, 6 | details | 
| #11 | WRONG ANSWER | 0.00 s | 3, 4, 5, 6 | details | 
| #12 | WRONG ANSWER | 0.00 s | 3, 4, 5, 6 | details | 
| #13 | WRONG ANSWER | 0.01 s | 3, 4, 5, 6 | details | 
| #14 | WRONG ANSWER | 0.00 s | 4, 5, 6 | details | 
| #15 | WRONG ANSWER | 0.00 s | 4, 5, 6 | details | 
| #16 | WRONG ANSWER | 0.00 s | 4, 5, 6 | details | 
| #17 | WRONG ANSWER | 0.02 s | 4, 5, 6 | details | 
| #18 | WRONG ANSWER | 0.00 s | 5, 6 | details | 
| #19 | WRONG ANSWER | 0.00 s | 5, 6 | details | 
| #20 | WRONG ANSWER | 0.00 s | 5, 6 | details | 
| #21 | WRONG ANSWER | 0.39 s | 5, 6 | details | 
| #22 | WRONG ANSWER | 0.01 s | 6 | details | 
| #23 | WRONG ANSWER | 0.01 s | 6 | details | 
| #24 | WRONG ANSWER | 0.01 s | 6 | details | 
| #25 | TIME LIMIT EXCEEDED | -- | 6 | details | 
Compiler report
input/code.cpp: In function 'int main()':
input/code.cpp:12:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |     scanf("%d", &n);
      |     ~~~~~^~~~~~~~~~
input/code.cpp:18:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   18 |         scanf("%s", buf);
      |         ~~~~~^~~~~~~~~~~Code
#define to_bit(c) (1<<(c - 'A'))
#define bitmap uint32_t
 
#include <stdio.h>
#include <stdint.h>
int n;
bitmap found_flowers = 0;
bitmap **board = new bitmap*[500];
int main() {
    scanf("%d", &n);
 
    char *buf = new char[501];
    
    for (int i = 0; i < n; i++) {
        bitmap *row = new bitmap[500];
        scanf("%s", buf);
        for (int j = 0; j < n; j++) {
            found_flowers = found_flowers | to_bit(buf[j]);
            row[j] = to_bit(buf[j]);
        }
        board[i] = row;
    }
    long solutions = 0;
    
    bitmap *columns = new bitmap[500];
    bitmap cols_bwise_ored;
    int right;
    int bottom;
    int iters_to_skip;
    for (int left = 0; left < n; left++) {
        for (int top = 0; top < n; top++) {
            right = n-1;
            bottom = top;
            /*for (int c_col = left; c_col <= right; c_col++) {
                columns[c_col] = board[c_col][top];
            }*/
            
            begin:
                cols_bwise_ored = 0;
                for (int c_col = left; c_col <= right; c_col++) {
                    cols_bwise_ored |= columns[c_col];
                    
                    if (cols_bwise_ored == found_flowers) {
                        iters_to_skip = right - c_col + 1;
                        goto valid;
                    }
                }
                goto invalid;
            
            valid:
                //std::cout << "valid!\n";
                solutions += (n - bottom) * iters_to_skip;
                right -= iters_to_skip;
                if (right < left) {
                    goto next;
                }
                goto begin;
            
            invalid:
                //std::cout << "invalid...\n";
                if (++bottom >= n) {
                    goto next;
                }
                for (int c_col = left; c_col <= right; c_col++) {
                    columns[c_col] |= board[c_col][bottom];
                }
                goto begin;
                
                //std::cout << std::endl;
            
            next:
            if (bottom == n && right == n-1) {
                goto next_column;
            }
            continue;
        }
        next_column: continue;
    }
    printf("%ld", solutions);
 
    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 | 
|---|
| 2676 | 
Test 2
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 10 NFWQLWNWYS DZOQJVXFPJ CNHXPXMCQD QRTBVNLTQC ...  | 
| correct output | 
|---|
| 9 | 
| user output | 
|---|
| 0 | 
Test 3
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 10 XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX ...  | 
| correct output | 
|---|
| 3025 | 
| user output | 
|---|
| 3015 | 
Test 4
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 10 FFFFFFFFFF FFFFFCFFFF FFFFFFJFFF FFFFFFFFFF ...  | 
| correct output | 
|---|
| 12 | 
| user output | 
|---|
| 202 | 
Test 5
Group: 1, 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 1 X  | 
| correct output | 
|---|
| 1 | 
| user output | 
|---|
| 0 | 
Test 6
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 20 BBCBUBOUOBBCUUBBCOUO BOUCOOCUBCOOOCOBOCUO UCCUUUOBCOCBCBUBUCOO BUOBUCUCUOOBCOOUBUOO ...  | 
| correct output | 
|---|
| 38724 | 
| user output | 
|---|
| 43850 | 
Test 7
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 20 CBGLSHGZHYZDWBNDBJUG SMUXOJQYPXZDTMJUIWOJ XIDSTNBGHKRKOVUVMINB MTQGCFRUHQKALXRNCQGS ...  | 
| correct output | 
|---|
| 8334 | 
| user output | 
|---|
| 25581 | 
Test 8
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 20 KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK KKKKKKKKKKKKKKKKKKKK ...  | 
| correct output | 
|---|
| 44100 | 
| user output | 
|---|
| 44080 | 
Test 9
Group: 2, 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 20 AAAAAAAAXAAAAAAAAAAA AAAWAAAAAAAAAAAAAOAA AAAAAAAAAAAAAAAAAPAA AAAAAAAAKAAAAAAAAAAZ ...  | 
| correct output | 
|---|
| 18 | 
| user output | 
|---|
| 804 | 
Test 10
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 50 GRGREEEGREGXRXXEGXXREXGRRRGRRR...  | 
| correct output | 
|---|
| 1584665 | 
| user output | 
|---|
| 1624898 | 
Test 11
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 50 AITIISJUHCCRZNKSDCNQKYSQRINFWJ...  | 
| correct output | 
|---|
| 1077746 | 
| user output | 
|---|
| 1525734 | 
Test 12
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 50 OOOOOOOOOOOOOOOOOOOOOOOOOOOOOO...  | 
| correct output | 
|---|
| 1625625 | 
| user output | 
|---|
| 1625575 | 
Test 13
Group: 3, 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 50 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...  | 
| correct output | 
|---|
| 1680 | 
| user output | 
|---|
| 71072 | 
Test 14
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 100 NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM...  | 
| correct output | 
|---|
| 25325366 | 
| user output | 
|---|
| 25501043 | 
Test 15
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 100 LIMQQIHASECROEVILNVULGWZJPPKOG...  | 
| correct output | 
|---|
| 22342463 | 
| user output | 
|---|
| 25317248 | 
Test 16
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 100 TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...  | 
| correct output | 
|---|
| 25502500 | 
| user output | 
|---|
| 25502400 | 
Test 17
Group: 4, 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 100 QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...  | 
| correct output | 
|---|
| 25650 | 
| user output | 
|---|
| 1214645 | 
Test 18
Group: 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 200 NAANANMMKNKKAKMKMAKNKMNKMMNNAA...  | 
| correct output | 
|---|
| 403292767 | 
| user output | 
|---|
| 404007000 | 
Test 19
Group: 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 200 OMYWATTLURKQPTKEFMGGYAOONXWVSC...  | 
| correct output | 
|---|
| 388111321 | 
| user output | 
|---|
| 403912632 | 
Test 20
Group: 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 200 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...  | 
| correct output | 
|---|
| 404010000 | 
| user output | 
|---|
| 404009800 | 
Test 21
Group: 5, 6
Verdict: WRONG ANSWER
| input | 
|---|
| 200 LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL...  | 
| correct output | 
|---|
| 14159445 | 
| user output | 
|---|
| 136562681 | 
Test 22
Group: 6
Verdict: WRONG ANSWER
| input | 
|---|
| 500 VVHWVUHVHUWWWVUUUWVUUHUUWHWUVW...  | 
| correct output | 
|---|
| 15683003812 | 
| user output | 
|---|
| 15687555438 | 
Test 23
Group: 6
Verdict: WRONG ANSWER
| input | 
|---|
| 500 OIMZGEQSBMBDSDXSWRFNKSGFEBBTJE...  | 
| correct output | 
|---|
| 15575906951 | 
| user output | 
|---|
| 15687469143 | 
Test 24
Group: 6
Verdict: WRONG ANSWER
| input | 
|---|
| 500 IIIIIIIIIIIIIIIIIIIIIIIIIIIIII...  | 
| correct output | 
|---|
| 15687562500 | 
| user output | 
|---|
| 15687562000 | 
Test 25
Group: 6
Verdict: TIME LIMIT EXCEEDED
| input | 
|---|
| 500 WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...  | 
| correct output | 
|---|
| 3058970930 | 
| user output | 
|---|
| (empty) | 
