この質問は、複数の時間を作って、1時間以上転送され、数回、最後にAC、自分のコードピット月の見えるだけ低いレベルを提出しています。
主な問題は、2つあり、1は抗HおよびVに従事することで、半分は問題を見ていない、別の問題も数回ワ私を導いた出力のフォーマットです。
ここでは、コードのACです
書式#include <cstdioを> // に#define LOCAL する#include <CStringの> の#include <iostreamの> 使用して 名前空間はstdを、 INT H [ 12 ] [ 12 ]、V [ 12 ] [ 12 ]。 ボイド入力(INT M){ チャーCH。 int型のA、B; 以下のために(INT iが= 0 ; I <M、I ++ ){ CIN >> CH >> B。 もし(CH == ' H ')V [A- 1 ] [B- 1 ] =1 ; もし(CH == ' V ')H [B- 1 ] [A- 1 ] = 1 。 } } ブールチェック(int型のx、int型 J、int型K){ ため(INT A = 0 ; <X; ++ ){ 場合(H [J + A] [K] || H [J + A]! [K + X])戻り 偽。 もし(!!V [j]の[K + A] || V [J + X] [K + A])のリターン はfalse ; } を返す 真。 } int型のmain(){ #ifdef LOCAL freopenは(" INPUT.TXT "、" R " 、STDIN)。 #endifの 整数 M、N、カセ= 0、CNT = 0、なし= 1、=第1 。 一方、(scanf関数(" %D%D "、&N、&M)== 2 ){ 場合(最初の)第一= 0 。 他のprintf(" \ nは********************************** \ N \ N " ); printf(" 問題#%D \ N \ N "、++ 加瀬)。 のmemset(H、 0、はsizeof (H))。 memset(V、0、はsizeof (V))。 入力(M)。 // デバッグ // coutの<< "**デバッグ**" <<てendl; // ため(INT iは= 0; iは<12; I ++){ // ため(INT J = 0であり、j <12; J ++){ // のprintf( "%dの"、V [I] [J])。 // } // COUT << ENDL。 // } // coutの<< "**デバッグ**" <<てendl; // デバッグ のための(int型は、私は= 1 ;私は< ; // I代表サイズ CNT = 0 ; のための(INT J = 0 ; J < 12である ; J ++){ // 私は最初から最後の行に、V上の検索、jは列の数である ため(int型 K = 0 ; K < 12であり、K ++){ // Kは列の数である IF(チェック(I、J、K))CNT ++ ; // デバッグ // COUT << "デバッグ**" << ENDL; // COUT << CNT ENDL <<; // coutの<< "デバッグ** **" <<てendl; // デバッグ (CNT){ } } 場合 のprintf(" サイズの%d個の正方形(S)%D \ n " 、CNT、I)。 なし = 0 ; } } もし(なし)のprintf(" いいえ正方形を見つけることができる完成\ N。" ); なし = 1 。 } 戻り 0 。 }