CSES - Datatähti 2025 alku - Results
Submission details
Task:Niitty
Sender:nikke5
Submission time:2024-11-08 17:25:56 +0200
Language:C++ (C++11)
Status:READY
Result:10
Feedback
groupverdictscore
#1ACCEPTED4
#2ACCEPTED6
#30
#40
#50
#60
Test results
testverdicttimegroup
#1ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#2ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#3ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#4ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#5ACCEPTED0.00 s1, 2, 3, 4, 5, 6details
#6ACCEPTED0.00 s2, 3, 4, 5, 6details
#7ACCEPTED0.01 s2, 3, 4, 5, 6details
#8ACCEPTED0.00 s2, 3, 4, 5, 6details
#9ACCEPTED0.01 s2, 3, 4, 5, 6details
#10ACCEPTED0.01 s3, 4, 5, 6details
#11ACCEPTED0.13 s3, 4, 5, 6details
#12ACCEPTED0.01 s3, 4, 5, 6details
#13--3, 4, 5, 6details
#14ACCEPTED0.10 s4, 5, 6details
#15ACCEPTED0.87 s4, 5, 6details
#16ACCEPTED0.08 s4, 5, 6details
#17--4, 5, 6details
#18--5, 6details
#19--5, 6details
#20--5, 6details
#21--5, 6details
#22--6details
#23--6details
#24--6details
#25--6details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:139:38: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<flower> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  139 |                     for (int i = 0; i<flist.size(); i++){
      |                                     ~^~~~~~~~~~~~~
input/code.cpp:117:21: warning: unused variable 'AllLetterFoundMaxYPoint' [-Wunused-variable]
  117 |                 int AllLetterFoundMaxYPoint = 999;
      |                     ^~~~~~~~~~~~~~~~~~~~~~~
input/code.cpp:108:19: warning: variable 'foundAllPoint' set but not used [-Wunused-but-set-variable]
  108 |     pair<int,int> foundAllPoint = {0, 0};
      |                   ^~~~~~~~~~~~~

Code

#include <iostream>
#include <cmath>
#include <vector>
#include <algorithm>
#include <string>
#include <sstream>
#include <chrono>
#include <iomanip>
#include <algorithm>

typedef long long ll;
using namespace std;

struct flower{

    int x, y;

    int id;
};

vector<vector<flower>> flist;

int idList[200] = {0};

int letterGrid[501][501];

vector<bool> findLettersFromRect(int minX, int maxX, int minY, int maxY){

    vector<bool> foundLetters(flist.size(), false);

    for (int x = minX; x<=maxX; x++){
        for (int y = minY; y<=maxY; y++){
            foundLetters[letterGrid[x][y]] = true;
        }
    }

    return foundLetters;


}

int main(){

    ios_base::sync_with_stdio(0);
    cin.tie(0);

    fill_n(idList, 200, -1);

    int n;

    cin >> n;
    cin.ignore(1,'\n');

    int id = 0;
    vector<string> sI;

    for (int y = n-1; y>=0; y--){

        
        sI.push_back(string());
        getline(cin, sI[sI.size()-1]);

    }

    int c = n-1;

    for (int y = n - 1; y >= 0; y--)
    {
        
        string s = sI[c];

        c--;

        for (int x = 0; x < n; x++)
        {
            flower f;
            f.x = x;
            f.y = y;

            if (idList[(int)s[x]] == -1)
            {
                idList[(int)s[x]] = id;
                flist.push_back(vector<flower>());
                id++;
            }

            f.id = idList[(int)s[x]];

            flist[f.id].push_back(f);

            letterGrid[x][y] = f.id;
        }
    }

    vector<vector<char>> visualization;

    

    for (int y = 0; y<n; y++){
        visualization.push_back(vector<char>());
        for(int x = 0; x<n; x++){
            visualization[y].push_back(sI[y][x]);
        }
    }

    int v = 0;

    pair<int,int> foundAllPoint = {0, 0};

    for(int minX = 0; minX<n; minX++){
        for(int minY = 0; minY<n; minY++){

            for(int maxX = minX; maxX<n; maxX++){

                

                int AllLetterFoundMaxYPoint = 999;

                for (int maxY = minY; maxY<n; maxY++){

                    // for (int y = minY; y <= maxY; y++)
                    // {
                    //     for (int x = minX; x <= maxX; x++)
                    //     {
                    //         cout << visualization[y][x] << " ";
                    //     }
                    //     cout << "\n";
                    // }
                    // cout << "\n";


                    // cout << minX << ", " << maxX << ", " << minY << ", " << maxY << "\n";
                    int notFound = flist.size();
                    
                    vector<bool> currentRectLetters;

                    currentRectLetters = findLettersFromRect(minX, maxX, minY, maxY);

                    for (int i = 0; i<flist.size(); i++){
                        if (currentRectLetters[i]){
                            notFound--;
                        }
                    }

                    if (notFound == 0){
                        v += n - maxY; // Jos tästä lähtien kaikista suorakulmista löytyy kaikki kirjaimet, lisää niiden määrä vastaukseen ja mene seuraavaan maxX iteraatioon.
                        // cout << "v:" << v << "\n";

                        break;
                    }

                }

            }

        }
    }


    cout << v;

}

Test details

Test 1

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

Verdict: ACCEPTED

input
10
TNCTNPNTPC
NPPNTNTPTP
NTNTTCNTCT
NPCPNPPNTT
...

correct output
2035

user output
2035

Test 2

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

Verdict: ACCEPTED

input
10
NFWQLWNWYS
DZOQJVXFPJ
CNHXPXMCQD
QRTBVNLTQC
...

correct output
9

user output
9

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

input
20
BBCBUBOUOBBCUUBBCOUO
BOUCOOCUBCOOOCOBOCUO
UCCUUUOBCOCBCBUBUCOO
BUOBUCUCUOOBCOOUBUOO
...

correct output
38724

user output
38724

Test 7

Group: 2, 3, 4, 5, 6

Verdict: ACCEPTED

input
20
CBGLSHGZHYZDWBNDBJUG
SMUXOJQYPXZDTMJUIWOJ
XIDSTNBGHKRKOVUVMINB
MTQGCFRUHQKALXRNCQGS
...

correct output
8334

user output
8334

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

input
20
AAAAAAAAXAAAAAAAAAAA
AAAWAAAAAAAAAAAAAOAA
AAAAAAAAAAAAAAAAAPAA
AAAAAAAAKAAAAAAAAAAZ
...

correct output
18

user output
18

Test 10

Group: 3, 4, 5, 6

Verdict: ACCEPTED

input
50
GRGREEEGREGXRXXEGXXREXGRRRGRRR...

correct output
1584665

user output
1584665

Test 11

Group: 3, 4, 5, 6

Verdict: ACCEPTED

input
50
AITIISJUHCCRZNKSDCNQKYSQRINFWJ...

correct output
1077746

user output
1077746

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:

input
50
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF...

correct output
1680

user output
(empty)

Test 14

Group: 4, 5, 6

Verdict: ACCEPTED

input
100
NNCMDCDDCCNNNDNCMMNCDCDCCDCDNM...

correct output
25325366

user output
25325366

Test 15

Group: 4, 5, 6

Verdict: ACCEPTED

input
100
LIMQQIHASECROEVILNVULGWZJPPKOG...

correct output
22342463

user output
22342463

Test 16

Group: 4, 5, 6

Verdict: ACCEPTED

input
100
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTT...

correct output
25502500

user output
25502500

Test 17

Group: 4, 5, 6

Verdict:

input
100
QXQQQQQQQQQQQQQQQQQQQQQQQQQQQQ...

correct output
25650

user output
(empty)

Test 18

Group: 5, 6

Verdict:

input
200
NAANANMMKNKKAKMKMAKNKMNKMMNNAA...

correct output
403292767

user output
(empty)

Test 19

Group: 5, 6

Verdict:

input
200
OMYWATTLURKQPTKEFMGGYAOONXWVSC...

correct output
388111321

user output
(empty)

Test 20

Group: 5, 6

Verdict:

input
200
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCC...

correct output
404010000

user output
(empty)

Test 21

Group: 5, 6

Verdict:

input
200
LLLLLLLLLLLLLLLLLHLLLLLLLLLLLL...

correct output
14159445

user output
(empty)

Test 22

Group: 6

Verdict:

input
500
VVHWVUHVHUWWWVUUUWVUUHUUWHWUVW...

correct output
15683003812

user output
(empty)

Test 23

Group: 6

Verdict:

input
500
OIMZGEQSBMBDSDXSWRFNKSGFEBBTJE...

correct output
15575906951

user output
(empty)

Test 24

Group: 6

Verdict:

input
500
IIIIIIIIIIIIIIIIIIIIIIIIIIIIII...

correct output
15687562500

user output
(empty)

Test 25

Group: 6

Verdict:

input
500
WWWWWWWWWWWWWWWWWWWWWWWWWWWWWW...

correct output
3058970930

user output
(empty)