ამოხსნების სტატუსი

ამ გვერდზე თქვენ იხილავთ გაგზავნილი ამოხსნების სტატუსს.


გაგზავნის თარიღი: 05.11.2019 20:45:16

ამოცანა: კროსვორდი

მომხმარებელი: Vato

ვერდიქტი: სრული ამოხსნა

შეფასება: 100.0 ქულა







#include <iostream>
#include <vector>
#include <array>
#include <algorithm>

int main(){

// need to generate n x n crossword, maximum 100 x 100
    std::array <std::array <char, 100>, 100> table;
    int n; std::cin >> n;

// user generates crossword
    for (int row = 0; row < n; ++row){
        for (int column = 0; column < n; ++column){
            std::cin >> table[row][column];
        }
    }

    int length_h = 0; // stores length of horizontal word
    int length_v = 0; // stores length of vertical word
    int words_h = 0; // stores number of horizontal words in crossword
    int words_v = 0; // stores number of vertical words in crossword

// see how many vertical words are in crossword
// if the vertical word length is 1, it does not count as word
    for (int column = 0; column < n; ++column){
        for (int row = 0; row < n; ++row){
        // if cell equals "-" increment length
            if (table[row][column] == '-'){
                ++length_v;
            // if we are on last cell in that row
                if (row == n-1){
                // and the length of word is more than 1
                // increment number of vertical words in crossword
                    if (length_v > 1){
                        ++words_v;
                    }
                    length_v = 0; // set length to 0 and start testing next column
                }
            }else{
            // if we hit black spot ("#"), see if length of word > 1
                if (length_v > 1){
                    ++words_v; // increment number of vertical words in crossword
                }
                length_v = 0; // set length to 0 and start searching for new words
            }
        }
    }

// procedures are exactly the same as for vertical
// only we test horizontal words and horizontal length
    for (int row = 0; row < n; ++row){
        for (int column = 0; column < n; ++column){
            if (table[row][column] == '-'){
                ++length_h;
                if (column == n-1){
                    if (length_h > 1){
                        ++words_h;
                    }
                    length_h = 0;
                }
            }else{
                if (length_h > 1){
                    ++words_h;
                    }
                length_h = 0;
            }
        }

    }

// print result
    std::cout << words_h << " " << words_v;

}

ტესტები

შემავალი მონაცემები
5
----#
--##-
-----
-##--
#----
გამომავალი მონაცემები
5 4
თქვენი პასუხი
5 4
ჩეკერის პასუხი
YES
შემავალი მონაცემები
100
######-#--#######--##---##-----#------######-#--#####-------------##---####-#--#----######--#-#-#---
-#---#-#---##------##-#-----##----####--#-#--#---##-#-#-#---#--#-#####-####-#-###-#-#-#####-#-#-#-#-
---#-####-##-######--##-##-----#-#-######-#-##-#-#...
გამომავალი მონაცემები
1297 1235
თქვენი პასუხი
1297 1235
ჩეკერის პასუხი
YES
შემავალი მონაცემები
8
--#-##-#
###-##-#
###-##-#
--------
###-####
#---####
###----#
########
გამომავალი მონაცემები
4 2
თქვენი პასუხი
4 2
ჩეკერის პასუხი
YES
შემავალი მონაცემები
25
########-################
#-----------------------#
################-########
#-----------------------#
####-##############-#####
#-----------------------#
---########---###########
#------------------------
########-----###########-
#------------------...
გამომავალი მონაცემები
24 33
თქვენი პასუხი
24 33
ჩეკერის პასუხი
YES
შემავალი მონაცემები
44
############################################
-------####-#--#--###--##--##----#--#-######
#---#--#-##-##----####---####-#--#-#---###-#
##--#--#-##-###----#------#---#--####---#--#
---##-----------##-##-######--###-##-##-####
#####--###----#-#####-###-#-...
გამომავალი მონაცემები
273 254
თქვენი პასუხი
273 254
ჩეკერის პასუხი
YES
შემავალი მონაცემები
100
-------------------------#--------------------------------------------------------------------------
--###--------------------#--------------------------------------------------------------------------
-#---#-------------------#------------------------...
გამომავალი მონაცემები
142 183
თქვენი პასუხი
142 183
ჩეკერის პასუხი
YES
შემავალი მონაცემები
50
------###----#####-###-####-#####---#######-######
###--###--#-#####----#--##--#####-#----###----###-
--######-######-#---####-##-#####---###-#----#-#--
--###----######--##--###---##--#---#----##-#---##-
#---#--#--#--##--#----##-#--##-#-###-###------##-...
გამომავალი მონაცემები
323 308
თქვენი პასუხი
323 308
ჩეკერის პასუხი
YES
შემავალი მონაცემები
79
##--#--####-###-##--#---######-##--##-#-----#---#--#--#--#-#--##--------#####-#
#-###--####--#-------#--##---#--#-#---#-###-#---######-----#-####-#-###-#-###--
-------###------###---##-###--#-#--###-----###----##---#-#---###--####--#---#-#
-##---##--#--...
გამომავალი მონაცემები
772 750
თქვენი პასუხი
772 750
ჩეკერის პასუხი
YES
შემავალი მონაცემები
100
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--
##--##--##--##--##--##--##--##--##--##--##--##--##...
გამომავალი მონაცემები
2500 50
თქვენი პასუხი
2500 50
ჩეკერის პასუხი
YES
შემავალი მონაცემები
100
--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
#--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--#
-##--##--##--##--##--##--##--##--##--##--##--##--#...
გამომავალი მონაცემები
2467 1650
თქვენი პასუხი
2467 1650
ჩეკერის პასუხი
YES