CSES - HIIT Open 2024 - Results
Submission details
Task:Hiitism
Sender:CPLX
Submission time:2024-11-16 16:58:27 +0200
Language:C++ (C++17)
Status:READY
Result:
Test results
testverdicttime
#1--details
#2--details
#3--details
#4--details
#5--details
#6--details
#7--details
#8--details
#9--details
#10--details
#11--details
#12--details
#13--details
#14--details
#15--details
#16--details
#170.03 sdetails
#18--details
#19--details
#20--details
#21--details
#22--details
#23--details
#24--details
#25--details
#26--details
#27--details
#28--details
#290.06 sdetails
#30--details

Code

#include <iostream>
#include <vector>

using namespace std;

struct h
{
    char row_column;
    int num;
    char color;
};

int main()
{
    int n, m;
    cin >> n >> m;

    vector<vector<char>> tab(n, vector<char>(m));
    // vector<bool> row(n,false);
    // vector<bool> column(m,false);

    vector<h> steps;

    bool change = false;
    while (change == false)
    {
        change = false;
        for (int i = 0; i < n; i++)
        {
            for (int l = 0; l < m; l++)
            {
                cin >> tab[i][l];
            }
        }
        for (int i = 0; i < n; i++)
        {
            char a = tab[i][0];
            bool same = true;
            for (int l = 1; l < m; l++)
            {
                if (tab[i][l] != a and (tab[i][l] != 'U'))
                {
                    same = false;
                    break;
                }
            }
            if (same)
            {
                change = true;
                h H;
                H.row_column = 'C';
                H.color = a;
                H.num = i;
                steps.push_back(H);
                i = i - 1;

                for(int l=0; l<m; l++) tab[i][l] = 'U';
                continue;
            }
        }
        for (int i = 0; i < m; i++)
        {
            char a = tab[0][i];
            bool same = true;
            for (int l = 1; l < n; l++)
            {
                if (tab[l][i] != a and (tab[l][i] != 'U'))
                {
                    same = false;
                    break;
                }
            }
            if (same)
            {
                change=true;
                h H;
                H.row_column = 'R';
                H.color = a;
                H.num = i;
                steps.push_back(H);
                i = i - 1;
                for(int l=0; l<m; l++) tab[l][i] = 'U';
                continue;
            }
        }
    }
    cout << steps.size() << endl;
    for(int i=steps.size()-1; i>=0; i--){
        h temp = steps[i];
        cout << temp.row_column <<" "<<temp.num<<" "<<temp.color<<endl;
    }
}

Test details

Test 1

Verdict:

input
3 3
.H.
IHI
TTT

correct output
3
R 2 I
C 2 H
R 3 T

user output
(empty)

Test 2

Verdict:

input
2 2
.H
IH

correct output
2
R 2 I
C 2 H

user output
(empty)

Test 3

Verdict:

input
10 10
T.TIH.....
IIIIIIIIII
T.TIH.....
TIIIHIIIII
...

correct output
7
C 3 T
R 10 I
R 4 I
C 5 H
...

user output
(empty)

Test 4

Verdict:

input
100 100
.............H........I.....IT...

correct output
19
R 3 T
C 44 H
R 34 I
C 30 T
...

user output
(empty)

Test 5

Verdict:

input
100 100
.........................H.......

correct output
Impossible

user output
(empty)

Test 6

Verdict:

input
1000 1000
H.II..T.I.IH..I..H.I..I..ITHH....

correct output
Impossible

user output
(empty)

Test 7

Verdict:

input
1000 1000
HHHIHHHHHHHHHHHHIHHHHHHHHHHHHH...

correct output
Impossible

user output
(empty)

Test 8

Verdict:

input
1000 1000
IHIHTI.T.H..IHHIIT.I.TT.HH.HI....

correct output
1552
C 822 I
C 83 T
C 55 I
R 984 H
...

user output
(empty)

Test 9

Verdict:

input
1000 1000
HHHHHHHHHHHHHHHHHHHHHIHHHHHHHH...

correct output
1727
R 500 I
C 938 H
C 804 H
R 263 H
...

user output
(empty)

Test 10

Verdict:

input
1000 1000
TITTTHTITTHTHTHITTTTTTTHTHTTTI...

correct output
1856
C 22 H
R 531 T
C 412 H
C 288 H
...

user output
(empty)

Test 11

Verdict:

input
1000 1000
IHHTTTTHTIIIHTTTTHTIITTTHHITIT...

correct output
1826
R 200 H
R 167 I
C 445 I
C 355 I
...

user output
(empty)

Test 12

Verdict:

input
1000 1000
TTTTTITTTHTHTITIIHTIITIHTTIHTT...

correct output
Impossible

user output
(empty)

Test 13

Verdict:

input
1000 1000
TITHITITIITTIIIIIHIIIIHTIIIHTI...

correct output
Impossible

user output
(empty)

Test 14

Verdict:

input
1000 1000
TTTTTTTTTTTTTTTTTTTITTTTTTTITT...

correct output
Impossible

user output
(empty)

Test 15

Verdict:

input
1000 1000
IHTHHHIHIIIHHTTHHHHIHIIHHIHHHH...

correct output
Impossible

user output
(empty)

Test 16

Verdict:

input
1000 500
HIHHTHTITTHIHTHTTHIHTTIHTTHHTH...

correct output
1417
C 75 I
R 430 T
C 195 H
R 441 I
...

user output
(empty)

Test 17

Verdict:

input
500 1000
IHIIIHIIHIIIIIHIHHIIIIIIIIIIII...

correct output
1418
C 971 T
C 744 I
C 654 I
C 540 T
...

user output
(empty)

Test 18

Verdict:

input
1000 500
IIIIIIIIIIIIIIITIIIIIIITTIIIII...

correct output
Impossible

user output
(empty)

Test 19

Verdict:

input
500 1000
HIITITHHHHIHHIHHTHIIIHHHHTHTHH...

correct output
Impossible

user output
(empty)

Test 20

Verdict:

input
1000 1000
TIITIIIIIIIIIIIIIIIIIHIHIIIIII...

correct output
Impossible

user output
(empty)

Test 21

Verdict:

input
1000 1000
TTHTTTTTHTTTHTTTTTTTTHHTTTTTIT...

correct output
Impossible

user output
(empty)

Test 22

Verdict:

input
1000 1000
IHIIIIITHIIIHIHHHITHIIIIHTTIHI...

correct output
Impossible

user output
(empty)

Test 23

Verdict:

input
1000 1000
TTHIHIITHTI.HHIHHITIHIHIHIITIH...

correct output
Impossible

user output
(empty)

Test 24

Verdict:

input
1000 1000
IHIHIIIIIIIIIHIIIHIHIITIHIIIII...

correct output
Impossible

user output
(empty)

Test 25

Verdict:

input
1000 500
HIHITTIHITHHHTITHIHHHTHHIHHIII...

correct output
Impossible

user output
(empty)

Test 26

Verdict:

input
500 1000
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHH...

correct output
Impossible

user output
(empty)

Test 27

Verdict:

input
1000 500
TTTTIHTTTHTTHTITTTTHTHTTHTITTI...

correct output
Impossible

user output
(empty)

Test 28

Verdict:

input
500 1000
HTIIIHIIIHITIHIIIIIIHTIIIIITHI...

correct output
Impossible

user output
(empty)

Test 29

Verdict:

input
1000 1000
.................................

correct output
0

user output
(empty)

Test 30

Verdict:

input
1000 1000
.................................

correct output
1
C 562 T

user output
(empty)