<!DOCTYPE html>
	<html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
	<head>
<title>Mái ngói | Câu khó - Đề thi HSG tin 12 Nghệ An | Năm 2012-2013</title>
<meta name="description" content="Mái ngói | Câu khó - Đề thi HSG tin 12 Nghệ An | Năm 2012-2013 - Savefile - Tin tức -...">
<meta name="author" content="BÀI TẬP Ở NHÀ">
<meta name="copyright" content="BÀI TẬP Ở NHÀ [ducluu80@gmail.com]">
<meta name="robots" content="index, archive, follow, noodp">
<meta name="googlebot" content="index, archive, follow, noodp">
<meta name="msnbot" content="all,index,follow">
<meta name="generator" content="NukeViet v4.5">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="content-language" content="vi">
<meta property="og:title" content="Mái ngói | Câu khó - Đề thi HSG tin 12 Nghệ An | Năm 2012-2013">
<meta property="og:type" content="website">
<meta property="og:description" content="Savefile - Tin tức - https&#x3A;&#x002F;&#x002F;baitaponha.com&#x002F;savefile&#x002F;giai-de-tin-hoc&#x002F;mai-ngoi-cau-kho-de-thi-hsg-tin-12-nghe-an-nam-2012-2013-39.html">
<meta property="og:site_name" content="BÀI TẬP Ở NHÀ">
<meta property="og:url" content="https://baitaponha.com/savefile/giai-de-tin-hoc/mai-ngoi-cau-kho-de-thi-hsg-tin-12-nghe-an-nam-2012-2013-39.html">
<link rel="shortcut icon" href="https://baitaponha.com/uploads/logo.ico">
<link rel="canonical" href="https://baitaponha.com/savefile/giai-de-tin-hoc/mai-ngoi-cau-kho-de-thi-hsg-tin-12-nghe-an-nam-2012-2013-39.html">
<link rel="alternate" href="https://baitaponha.com/rss/" title="Tin tức" type="application/rss+xml">
<link rel="alternate" href="https://baitaponha.com/rss/lap-trinh-python-co-ban/" title="Tin tức - Lập trình Python cơ bản." type="application/rss+xml">
<link rel="alternate" href="https://baitaponha.com/rss/giai-de-tin-hoc/" title="Tin tức - Giải đề tin học" type="application/rss+xml">
<link rel="alternate" href="https://baitaponha.com/rss/boi-gioi-tin-hoc/" title="Tin tức - Bồi giỏi tin học" type="application/rss+xml">
<link rel="alternate" href="https://baitaponha.com/rss/lap-trinh-c/" title="Tin tức - Lập trình C++" type="application/rss+xml">
<link rel="alternate" href="https://baitaponha.com/rss/thu-thuat-may-tinh/" title="Tin tức - Thủ thuật máy tính" type="application/rss+xml">
<link rel="preload" as="style" href="https://baitaponha.com/assets/css/font-awesome.min.css" type="text/css">
<link rel="preload" as="style" href="https://baitaponha.com/themes/egov/css/bootstrap.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://baitaponha.com/themes/egov/css/style.css" type="text/css">
<link rel="preload" as="style" href="https://baitaponha.com/themes/egov/css/style.non-responsive.css" type="text/css">
<link rel="preload" as="style" href="https://baitaponha.com/themes/egov/css/custom.css" type="text/css">
<link rel="preload" as="style" href="https://baitaponha.com/themes/egov/css/style-green.css" type="text/css">
<link rel="preload" as="style" href="https://baitaponha.com/themes/egov/css/news.css" type="text/css">
<link rel="preload" as="script" href="https://baitaponha.com/assets/js/jquery/jquery.min.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/assets/js/language/vi.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/assets/js/DOMPurify/purify3.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/assets/js/global.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/assets/js/site.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/themes/default/js/news.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/assets/js/jquery/jquery.cookie.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/themes/egov/js/main.js" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/themes/egov/js/custom.js" type="text/javascript">
<link rel="preload" as="script" href="https://www.googletagmanager.com/gtag/js?id=G-4JBZJ8SEPL" type="text/javascript">
<link rel="preload" as="script" href="https://baitaponha.com/themes/egov/js/bootstrap.min.js" type="text/javascript">
<link rel="StyleSheet" href="https://baitaponha.com/assets/css/font-awesome.min.css">
<link rel="StyleSheet" href="https://baitaponha.com/themes/egov/css/bootstrap.non-responsive.css">
<link rel="StyleSheet" href="https://baitaponha.com/themes/egov/css/style.css">
<link rel="StyleSheet" href="https://baitaponha.com/themes/egov/css/style.non-responsive.css">
<link rel="StyleSheet" href="https://baitaponha.com/themes/egov/css/custom.css">
<link rel="StyleSheet" href="https://baitaponha.com/themes/egov/css/style-green.css">
<link rel="StyleSheet" href="https://baitaponha.com/themes/egov/css/news.css">
<style type="text/css">
	body{background: #fff;}
</style>

<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3247389617576546"
     crossorigin="anonymous"></script>
     <!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-4JBZJ8SEPL"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-4JBZJ8SEPL');
</script>
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-W4C9RPT');</script>
<!-- End Google Tag Manager -->
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-6V0WCB5SCB"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'G-6V0WCB5SCB');
</script>
<script async custom-element="amp-auto-ads"
        src="https://cdn.ampproject.org/v0/amp-auto-ads-0.1.js">
</script>		
<script async custom-element="amp-ad" src="https://cdn.ampproject.org/v0/amp-ad-0.1.js"></script>

<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-262364265-1"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

  gtag('config', 'UA-262364265-1');
</script>
<script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-262364265-1', '.baitaponha.com');
ga('send', 'pageview');
</script>
</head>
	<body>
	    <amp-auto-ads type="adsense"
                    data-ad-client="ca-pub-3247389617576546">
        </amp-auto-ads>
<!-- BEGIN Fanpage Facebook -->
<div id="fb-root"></div>
<script async defer crossorigin="anonymous" src="https://connect.facebook.net/vi_VN/sdk.js#xfbml=1&version=v16.0&appId=390459604647856&autoLogAppEvents=1" nonce="H8AT1lQt"></script>

<!-- END Fanpage Facebook -->
        <!-- Google Tag Manager (noscript) -->
            <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-W4C9RPT"
            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
        <!-- End Google Tag Manager (noscript) -->
<div id="print">
	<div id="hd_print">
		<h2 class="pull-left">BÀI TẬP Ở NHÀ</h2>
		<p class="pull-right"><a title="BÀI TẬP Ở NHÀ" href="https://baitaponha.com/">https://baitaponha.com</a></p>
	</div>
	<div class="clear"></div>
	<hr />
	<div id="content">
		<h1>Mái ngói | Câu khó - Đề thi HSG tin 12 Nghệ An | Năm 2012-2013</h1>
		<ul class="list-inline">
			<li>Thứ hai - 08/05/2023 22:13</li>
			<li class="hidden-print txtrequired"><em class="fa fa-print">&nbsp;</em><a title="In ra" href="javascript:;" onclick="window.print()">In ra</a></li>
			<li class="hidden-print txtrequired"><em class="fa fa-power-off">&nbsp;</em><a title="Đóng cửa sổ này" href="javascript:;" onclick="window.close()">Đóng cửa sổ này</a></li>
		</ul>
		<div class="clear"></div>
		<div id="hometext">
			<p><strong>Câu 4. Mái ngói (Đề thi HSG tin 12 của tỉnh Nghệ An - năm 2012-2013)</strong></p>

<p>Đây là câu khó nhằm phân loại điểm học sinh. Câu này đề bài dài, để giải được câu này thì việc đọc và hiểu là vô cùng quan trọng. Bài toán có tính thực tế trong cuộc sống và phải dùng tư duy tin học để giải quyết. Sau đây là đề bài và code mẫu cùng với các test của đề, mời thầy cô và các bạn tham khảo nhé!</p>
		</div>
				<div class="imghome">
			<img alt="Câu khó - Phân loại điểm thi học sinh." src="https://baitaponha.com/uploads/news/2023_05/anh-chup-man-hinh-2023-05-09-113942.png" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif">Cho <i>M</i> (1 <span style="font-family:Symbol">£</span> <i>M</i> <span style="font-family:Symbol">£</span> 10) viên ngói vuông kích thước 5 <span style="font-family:Symbol">´</span> <span style="font-family:Symbol">5</span>, được lợp trên một mái nhà hình vuông kích thước N x N (5 <span style="font-family:Symbol">£</span> <i>N</i> <span style="font-family:Symbol">£</span> 15), lần lượt mỗi lần 1 viên, các cạnh của chúng song song với các cạnh của mái. Các viên ngói được đặt tên là chữ cái liên tiếp bắt đầu từ A (theo bảng chữ cái tiếng Anh).</span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ví dụ viên ngói A được mô tả là:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b><span lang="FR" style="font-family:&#039;Courier New&#039;">AAAAA</span></b></span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span lang="FR" style="font-family:&#039;Courier New&#039;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAAAA</span></b></span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span lang="FR" style="font-family:&#039;Courier New&#039;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAAAA</span></b></span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span lang="FR" style="font-family:&#039;Courier New&#039;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAAAA</span></b></span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span lang="FR" style="font-family:&#039;Courier New&#039;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AAAAA</span></b></span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif">và nếu có 5 viên ngói thì chúng sẽ được gọi là A, B, C, D, E. Viên ngói đặt sau có thể che một phần hoặc che cả viên ngói đặt trước đó. Sau khi viên ngói cuối cùng được đặt lên mái ta thu được một <i>Mai_ngoi</i>. Ví dụ, <i>Mai_ngoi</i> 1 biểu thị rằng viên ngói A được đặt sau viên ngói B trên một mái vuông 11 x 11.</span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:18.0pt 117.0pt 225.0pt 333.0pt"><span style="font-family:&#039;Courier New&#039;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif">Mai</span></span></span></i><i>_ngoi</i><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"> 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mai</i></span></span></span><i>_ngoi</i><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"> 2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mai</i></span></span></span><i>_ngoi</i><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"> 3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <i>Mai</i></span></span></span><i>_ngoi</i><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"> 4</span></span></span></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">...........&nbsp;&nbsp; ...........&nbsp;&nbsp;&nbsp; ...........&nbsp;&nbsp;&nbsp; ...AAAAA...</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">..BBBBB....&nbsp;&nbsp; ..BBBBB....&nbsp;&nbsp;&nbsp; ...........&nbsp;&nbsp;&nbsp; ...AAAAA...</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">..BBBBB....&nbsp;&nbsp; ..BBBBB....&nbsp;&nbsp;&nbsp; ....AAAA...&nbsp;&nbsp;&nbsp; ...AAAAA...</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">..BBBBB....&nbsp;&nbsp; ..BBBBB....&nbsp;&nbsp;&nbsp; ...BAAAAB..&nbsp;&nbsp;&nbsp; ...AAAAADDD</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">..BBAAAAA..&nbsp;&nbsp; ..BBAAAAA..&nbsp;&nbsp;&nbsp; ...BAAAAB..&nbsp;&nbsp;&nbsp; BBBBBAAADDD</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">..BBAAAAA..&nbsp;&nbsp; ..BBAAAAACC&nbsp;&nbsp;&nbsp; ...BAAAAB..&nbsp;&nbsp;&nbsp; BBBBB.DDDDD</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">....AAAAA..&nbsp;&nbsp; DDDDAAAAACC&nbsp;&nbsp;&nbsp; .CCCAAAAB..&nbsp;&nbsp;&nbsp; BBBCCCDDDDD</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">....AAAAA..&nbsp;&nbsp; DDDDAAAAACC&nbsp;&nbsp;&nbsp; .C.CCCBBB..&nbsp;&nbsp;&nbsp; BBBCCCDDDDD</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">....AAAAA..&nbsp;&nbsp; DDDDAAAAACC&nbsp;&nbsp;&nbsp; .CCCCC.....&nbsp;&nbsp;&nbsp; BBBCCCCC...</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="FR" style="font-size:12.0pt"><span style="line-height:110%">...........&nbsp;&nbsp; DDDDD.CCCCC&nbsp;&nbsp;&nbsp; .CCCCC.....&nbsp;&nbsp;&nbsp; ...</span></span></b><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">CCCCC...</span></span></b></span></span></span></span><br />
<span style="font-size:10pt"><span style="line-height:110%"><span style="tab-stops:9.0pt 108.0pt 216.0pt 324.0pt"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">...........&nbsp;&nbsp; DDDDD......&nbsp;&nbsp;&nbsp; .CCCCC.....&nbsp;&nbsp;&nbsp; ...CCCCC...</span></span></b></span></span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><span style="display:none">The tiles are named with consecutive letters beginning from A.&nbsp; For example, if there are 5 tiles, then they will be called A, B, C, D and E.&nbsp; In a top-view, each position on the table is represented either by a “.” if that position is not covered or a letter which is the name of the tile that is top-most at that position.</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Trong một <i>Mai_ngoi</i>, mỗi vị trí trên mái được ký hiệu bởi một dấu chấm &quot;<b>.</b>&quot; nếu vị trí đó không bị phủ bởi một chữ cái là tên của viên ngói trên cùng tại vị trí đó.</span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><span style="display:none">If the given top-view is valid, it is possible to decide a set of tiles each of which might have been the very first tile that was placed on the table.&nbsp; For example, consider Top-view 2.&nbsp; It is possible that tile B or C or D is the first tile that was placed on the table.&nbsp;However, it is impossible that A is the first tile that was placed on the table.</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Một <i>Mai_ngoi</i> là hợp lệ nếu có thể xác định được một tập các viên ngói mà mỗi một trong chúng có thể là viên đầu tiên đã được đặt lên mái. Ví dụ ở <i>Mai_ngoi</i>2, có thể viên ngói B hoặc C hoặc D là viên ngói đầu tiên đã được đặt lên mái, nhưng A không thể là viên ngói đầu tiên đã được đặt lên mái.</span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="display:none">There are two possible reasons that a top-view is invalid.&nbsp; The first reason is that some tiles are not a 5 </span><span style="font-family:Symbol"><span style="display:none">´</span></span><span style="display:none"> 5 square.&nbsp; For example, Top-view 3 is invalid: A is a 4 </span><span style="font-family:Symbol"><span style="display:none">´</span></span><span style="display:none"> 5 tile, the width of B exceeds 5, and C has a hole.&nbsp; Any of these reasons is enough to conclude that this top-view is invalid.</span> Một <i>Mai_ngoi</i> là không hợp lệ nếu xảy ra một trong hai điều sau:</span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Có viên ngói không đúng dạng mô tả. Ví dụ &nbsp;<i>Mai_ngoi</i> 3 là không hợp lệ vì có A là viên <span style="font-family:Symbol">4 </span>x 5, hay chiều rộng của viên B vượt quá 5, hay viên C có một lỗ thủng.</span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><span style="display:none">The second reason is that tiles could not have been placed one after another.&nbsp;It is impossible that the tiles in Top-view 4 were placed one at a time </span><span style="font-family:Symbol"><span style="display:none">¾</span></span><span style="display:none"> the four tiles are interlocking.&nbsp; Hence, this top-view is invalid.</span> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - Các viên ngói không được đặt theo lần lượt viên này sau viên kia. Ví dụ trong <i>Mai_ngoi</i> 4 được đặt một lúc <span style="font-family:Symbol">4 </span>viên ngói lồng vào nhau. Do đó, <i>Mai_ngoi4</i> là không hợp lệ.</span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span style="display:none">5.1&nbsp;Requirements</span>Yêu cầu:</b><span style="display:none">Given a top-view, if it is invalid, you are to output the 2 letters “NO”.&nbsp; Otherwise, you are to output the letters in ascending order of the tiles each of which might be the first tile.</span> Cho một <i>Mai_ngoi</i>, nếu nó không hợp lệ thì đưa ra ‘NO’. Nếu hợp lệ thì đưa ra các chữ cái theo thứ tự tăng dần của các viên ngói mà mỗi một trong số đó có thể là &nbsp;viên ngói đầu tiên.</span></span></span><br />
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span style="font-size:13.5pt"><span style="line-height:110%"><span style="display:none">5.2&nbsp;Input File</span></span></span> </b><b><span style="font-size:13.5pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><span style="display:none">TILE.IN</span></span></span></span></b> <b>Dữ liệu: </b>Vào từ file văn bản Bai4.inp:</span></span></span>
<ul>
	<li style="text-align:justify"><span style="font-size:12pt"><span style="line-height:110%"><span style="tab-stops:list 36.0pt"><span style="font-family:&#039;Times New Roman&#039;,serif"><span style="display:none">The file contains the integer <i>M</i> , the number of tiles, on the first line; the integer <i>N</i> , the size of the <i>N</i> </span><span style="font-family:Symbol"><span style="display:none">´</span></span><span style="display:none"> <i>N</i> square table on the next line; and then the top-view, given as one row at each line.</span> Dòng đầu tiên chứa số nguyên <i>M</i> là số lượng viên ngói;</span></span></span></span></li>
	<li style="text-align:justify"><span style="font-size:12pt"><span style="line-height:110%"><span style="tab-stops:list 36.0pt"><span style="font-family:&#039;Times New Roman&#039;,serif">Dòng tiếp theo chứa số nguyên <i>N</i> là kích thước của bảng vuông <i>N</i> x <i>N</i> ;</span></span></span></span></li>
	<li style="text-align:justify"><span style="font-size:12pt"><span style="line-height:110%"><span style="tab-stops:list 36.0pt"><span style="font-family:&#039;Times New Roman&#039;,serif">N dòng tiếp theo miêu tả <i>Mai_ngoi.</i></span></span></span></span></li>
</ul>
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span style="font-size:13.5pt"><span style="line-height:110%"><span style="display:none">5.3&nbsp;Output File</span></span></span> </b><b><span style="font-size:13.5pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><span style="display:none">TILE.OUT</span></span></span></span> Kết quả: </b>Ghi ra file văn bản Bai4.out:</span></span></span>

<ul>
	<li style="text-align:justify"><span style="font-size:12pt"><span style="line-height:110%"><span style="tab-stops:list 36.0pt"><span style="font-family:&#039;Times New Roman&#039;,serif"><span style="display:none">The output file contains either the string “NO”, or a string of letters (in ascending order) representing the possible first tiles.&nbsp; There should be no spaces between the letters.</span> Là chuỗi &quot;NO&quot; nếu <i>Mai_ngoi </i>không hợp lệ, còn nếu <i>Mai_ngoi</i> hợp lệ thì đưa ra một chuỗi các chữ cái (theo thứ tự tăng dần) là đại diện cho các viên ngói có thể là viên đầu tiên. Không có dấu cách giữa các chữ cái. </span></span></span></span></li>
</ul>
<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b>&nbsp;<i>Ví dụ:</i></b></span></span></span>

<table class="MsoTableGrid" style="margin-left:143px; border-collapse:collapse; border:none">
	<tbody>
		<tr>
			<td style="border-bottom:1px solid black; width:178px; padding:0cm 7px 0cm 7px; border-top:1px solid black; border-right:1px solid black; border-left:1px solid black" valign="top"><span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b>Bai4.inp</b></span></span></span></td>
			<td style="border-bottom:1px solid black; width:113px; padding:0cm 7px 0cm 7px; border-top:1px solid black; border-right:1px solid black; border-left:none" valign="top"><span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b>Bai4.out</b></span></span></span></td>
		</tr>
		<tr>
			<td style="border-bottom:1px solid black; width:178px; padding:0cm 7px 0cm 7px; border-top:none; border-right:1px solid black; border-left:1px solid black" valign="top"><span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span style="font-family:&#039;Courier New&#039;"><span style="display:none">4</span></span></b> <b><span style="font-family:&#039;Courier New&#039;">4</span></b></span></span></span><br />
			<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span style="font-family:&#039;Courier New&#039;"><span style="display:none">15</span></span></b> <b><span style="font-family:&#039;Courier New&#039;">10</span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%"><span style="display:none">...............</span></span></span></b><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">..........</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">..BBBBB...</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">..BBBBB...</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">..BBBBB...</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">..BBAAAAA.</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">.CCCCCAAA.</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">.CCCCCAAA.</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">.CCCCCAAA.</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">.CCCCCAAA.</span></span></b></span></span></span><br />
			<span style="font-size:10pt"><span style="line-height:110%"><span style="font-family:&#039;Courier New&#039;"><b><span lang="EN-GB" style="font-size:12.0pt"><span style="line-height:110%">.CCCCC....</span></span></b></span></span></span><br />
			&nbsp;</td>
			<td style="border-bottom:1px solid black; width:113px; padding:0cm 7px 0cm 7px; border-top:none; border-right:1px solid black; border-left:none" valign="top"><span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b><span style="font-family:&#039;Courier New&#039;">BD</span></b></span></span></span></td>
		</tr>
	</tbody>
</table>
&nbsp;

<h2><strong>Code mẫu bằng Pascal</strong></h2>

<pre>
<code class="language-python">const   fi      =       &#039;bai4.inp&#039;;
        fo      =       &#039;bai4.OUT&#039;;
        chu     =       &#039;ABCDEFGHIJ.&#039;;
        so      =       &#039;0123456789&#039;;

var     f       :       text;
        a       :       array&#91;1..15&#93; of string;
        d       :       array&#91;1..11,1..4&#93;of byte;
        g,kq    :       array&#91;1..11&#93;of byte;
        m,n     :       byte;
function min(a,b:byte):byte;
begin if a&gt;b then min:=b
        else min:=a;
end;

function max(a,b:byte):byte;
begin if a&gt;b then max:=a
        else max:=b;
end;

procedure nhap;
var i,j,r:byte;
begin
    assign(f,fi);reset(f);
    readln(f,m);
    readln(f,n);
    for i:=1 to m do g&#91;i&#93;:=1;
    for i:=1 to m do kq&#91;i&#93;:=1;
    for i:=1 to m do begin d&#91;i,1&#93;:=11;d&#91;i,2&#93;:=11;end;
    for i:=1 to n do
        begin
             for j:=1 to n do
                 begin
                      read(f,a&#91;i,j&#93;);
                      r:=pos(a&#91;i,j&#93;,chu);
                      if (r=0)or(r=11) then continue;
                      g&#91;r&#93;:=0;
                      kq&#91;r&#93;:=0;
                      d&#91;r,1&#93;:=min(d&#91;r,1&#93;,i);
                      d&#91;r,2&#93;:=min(d&#91;r,2&#93;,j);
                      d&#91;r,3&#93;:=max(d&#91;r,3&#93;,i);
                      d&#91;r,4&#93;:=max(d&#91;r,4&#93;,j);
                 end;
        readln(f);
        end;
    close(f);
end;

procedure lat(i,j:byte;ch:char);
var x,y,r:byte;s:string;
begin
    r:=pos(ch,chu)-1;
    str(r,s);
    ch:=s&#91;1&#93;;
    for x:=i to i+4 do
    for y:=j to j+4 do a&#91;x,y&#93;:=ch;
end;

function kt:boolean;{kiem tra trong}
var i,u,v:byte;
begin
    kt:=true;
    for i:=1 to m do
        begin
             if (d&#91;i,3&#93;-d&#91;i,1&#93;&gt;4)or(d&#91;i,4&#93;-d&#91;i,2&#93;&gt;4) then
                                begin
                                kt:=false;
                                exit;
                                end;

             for u:=d&#91;i,1&#93; to d&#91;i,3&#93; do
             for v:=d&#91;i,2&#93; to d&#91;i,4&#93; do
                if pos(a&#91;u,v&#93;,chu)=0 then
                                begin
                                kt:=false;
                                exit;
                                end;
        end;
end;
function kt_lat(u,v:integer;k:char):boolean;
var i,j:byte;
begin
    kt_lat:=true;
    for i:=u to u+4 do
    for j:=v to v+4 do
        if (a&#91;i,j&#93;&lt;&gt;k)and(pos(a&#91;i,j&#93;,chu)&gt;0) then
                                                begin
                                                    kt_lat:=false;
                                                    exit;
                                                end;
end;

function kt_cuoi(i,j:byte):boolean;
var r:char;u,v:byte;
begin
    r:=a&#91;i,j&#93;;
    kt_cuoi:=true;
    for u:=i to i+4 do
    for v:=j to j+4 do if a&#91;u,v&#93;&lt;&gt;r then begin kt_cuoi:=false;exit;end;
end;

procedure xuat(r:byte);
var i:byte;
begin
    assign(f,fo);rewrite(f);
    if r=1 then writeln(f,&#039;NO&#039;)
    else for i:=1 to m do if kq&#91;i&#93;=1 then write(f,chu&#91;i&#93;);
    close(f);
end;
procedure thuc_hien;
var i,j,r,sll:byte;
    u,v:integer;
begin
    if not kt then begin xuat(1);halt;end;

    sll:=0;
    for i:=1 to m do
        begin
             for j:=1 to m do
                if g&#91;j&#93;=0 then
                  begin
                     for u:=d&#91;j,3&#93;-4 to d&#91;j,1&#93; do
                     if (u&gt;0)and(u+4&lt;=n) then
                     for v:=d&#91;j,4&#93;-4 to d&#91;j,2&#93; do
                     if (v&gt;0)and(v+4&lt;=n) then
                     if kt_lat(u,v,chu&#91;j&#93;) then
                        begin
                                lat(u,v,chu&#91;j&#93;);
                                g&#91;j&#93;:=1;
                                inc(sll);
                        end;
                 end;
        end;

    for i:=1 to m do if g&#91;i&#93;=0 then begin xuat(1);halt;end;

    if (sll=1) then begin xuat(2);halt;end;

    for i:=1 to n-4 do
    for j:=1 to n-4 do
    if pos(a&#91;i,j&#93;,so)&gt;0 then
    if kt_cuoi(i,j) then
                                            begin
                                                r:=pos(a&#91;i,j&#93;,so);
                                                kq&#91;r&#93;:=1;
                                            end;
    xuat(2);
end;
BEGIN
nhap;
thuc_hien;
END.
</code></pre>

<h2><strong>Các test</strong></h2>
Các test được đính kèm cuối bài nhé.

<p>&nbsp;</p>

<h2><strong>Tham gia thảo luận</strong></h2>
Để trao đổi ý kiến, phải hồi hay gửi các thắc mắc cũng như yêu cầu giải đề, mời các bạn tham gia nhóm và trang facebook sau:<br />
<strong>Nhóm facebook:</strong>&nbsp;<a href="https://www.facebook.com/groups/baitaponha" target="_blank"><span style="color:rgb(41, 128, 185);"><strong>f / BAITAPONHA</strong></span></a><br />
<strong>Trang facebook:</strong><span style="color:rgb(41, 128, 185);">&nbsp;</span><strong><a href="https://www.facebook.com/hocquainternet" target="_blank"><span style="color:rgb(41, 128, 185);">f / HỌC MÃI</span></a></strong>
		</div>
				<div id="author">
						<p>
				<strong>Tác giả:</strong>
				<a href="https://baitaponha.com/author/admin/">admin</a>
			</p>
		</div>
	</div>
	<div id="footer" class="clearfix">
		<div id="url">
			<strong>URL của bản tin này: </strong><a href="https://baitaponha.com/savefile/giai-de-tin-hoc/mai-ngoi-cau-kho-de-thi-hsg-tin-12-nghe-an-nam-2012-2013-39.html" title="Mái ngói | Câu khó - Đề thi HSG tin 12 Nghệ An | Năm 2012-2013">https://baitaponha.com/savefile/giai-de-tin-hoc/mai-ngoi-cau-kho-de-thi-hsg-tin-12-nghe-an-nam-2012-2013-39.html</a>

		</div>
		<div class="clear"></div>
		<div class="copyright">
			&copy; BÀI TẬP Ở NHÀ
		</div>
		<div id="contact">
			<a href="mailto:ducluu80@gmail.com">ducluu80@gmail.com</a>
		</div>
	</div>
</div>
        <div id="timeoutsess" class="chromeframe">
            Bạn đã không sử dụng Site, <a onclick="timeoutsesscancel();" href="https://baitaponha.com/#">Bấm vào đây để duy trì trạng thái đăng nhập</a>. Thời gian chờ: <span id="secField"> 60 </span> giây
        </div>
        <div id="openidResult" class="nv-alert" style="display:none"></div>
        <div id="openidBt" data-result="" data-redirect=""></div>
<div id="run_cronjobs" style="visibility:hidden;display:none;"><img alt="cron" src="/index.php?second=cronjobs&amp;p=o4rc0Y1U" width="1" height="1" /></div>
<script src="https://baitaponha.com/assets/js/jquery/jquery.min.js"></script>
<script>var nv_base_siteurl="/",nv_lang_data="vi",nv_lang_interface="vi",nv_name_variable="nv",nv_fc_variable="op",nv_lang_variable="language",nv_module_name="news",nv_func_name="savefile",nv_is_user=0, nv_my_ofs=-4,nv_my_abbr="EDT",nv_cookie_prefix="btol",nv_check_pass_mstime=21538000,nv_area_admin=0,nv_safemode=0,theme_responsive=0,nv_recaptcha_ver=2,nv_recaptcha_sitekey="",nv_recaptcha_type="image",XSSsanitize=1;</script>
<script src="https://baitaponha.com/assets/js/language/vi.js"></script>
<script src="https://baitaponha.com/assets/js/DOMPurify/purify3.js"></script>
<script src="https://baitaponha.com/assets/js/global.js"></script>
<script src="https://baitaponha.com/assets/js/site.js"></script>
<script src="https://baitaponha.com/themes/default/js/news.js"></script>
<script src="https://baitaponha.com/assets/js/jquery/jquery.cookie.js"></script>
<script src="https://baitaponha.com/themes/egov/js/main.js"></script>
<script src="https://baitaponha.com/themes/egov/js/custom.js"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-4JBZJ8SEPL"></script>
<script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag('js',new Date);gtag('config','G-4JBZJ8SEPL');</script>
<script src="https://baitaponha.com/themes/egov/js/bootstrap.min.js"></script>
</body>
</html>