<!DOCTYPE html>
	<html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
	<head>
<title>Quy hoạch động | Xâu con chung dài nhất | Câu 2 - Đề thi HSG tỉnh Nghệ An | năm 2012 - 2013</title>
<meta name="description" content="Quy hoạch động | Xâu con chung dài nhất | Câu 2 - Đề thi HSG tỉnh 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="Quy hoạch động | Xâu con chung dài nhất | Câu 2 - Đề thi HSG tỉnh 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;cau-2-xau-con-chung-dai-nhat-2012-2013-37.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/cau-2-xau-con-chung-dai-nhat-2012-2013-37.html">
<link rel="shortcut icon" href="https://baitaponha.com/uploads/logo.ico">
<link rel="canonical" href="https://baitaponha.com/savefile/giai-de-tin-hoc/cau-2-xau-con-chung-dai-nhat-2012-2013-37.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>Quy hoạch động | Xâu con chung dài nhất | Câu 2 - Đề thi HSG tỉnh Nghệ An | năm 2012 - 2013</h1>
		<ul class="list-inline">
			<li>Thứ bảy - 06/05/2023 11:02</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">
			Bắt đầu chương trình giải đề học sinh giỏi tin học 12 của tỉnh Nghệ An, Tiếp tục mới các bạn tham khảo đề thi HSG tin học lớp 12. Trong bài này là các câu 2 của đề thi năm 2012-2013. Mời các bạn cùng tham khảo nhé. Trong bài sẽ có code mẫu bằng pascal và các test để các bạn chạy thử. Ngoài ra còn có code giải Python theo QUY HOẠCH ĐỘNG và TRUY VẾT.
		</div>
				<div class="imghome">
			<img alt="Quy hoạch động và truy vết" src="https://baitaponha.com/uploads/news/2023_05/capture.png" width="460" class="img-thumbnail" />
		</div>
		<div class="clear"></div>
		<div id="bodytext" class="clearfix">
			<h2><strong>Bài 2. Xâu con chung dài nhất</strong></h2>
<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; Xâu S được gọi là xâu con chung của xâu S1 và xâu S2 nếu xâu S là một dãy các ký tự liên tiếp trong S1 và cũng là dãy các ký tự liên tiếp trong S2.</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>Yêu cầu: </b>Cho hai xâu kí tự S1 và S2 (có không quá 255 ký tự). Hãy tìm độ dài xâu con chung dài nhất S của hai xâu S1 và S2. Ví dụ: S1 = ’Ky thi hoc sinh gioi Tinh mon Tin hoc’, S2 = ’hoc sinh gioi mon Tin hoc’ thì S = ‘hoc sinh gioi &nbsp;&#039; và độ dài cần tìm là 14.</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>Dữ liệu: </b>Vào từ file văn bản Bai2.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">Dòng đầu tiên ghi xâu S1;</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 thứ hai ghi xâu S2.</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>Kết quả: </b>Ghi ra file văn bản Bai2.out: Chỉ một số duy nhất là độ dài của xâu con chung dài nhất&nbsp; S. (Nếu hai xâu S1, S2 không có kí tự nào chung thì ghi số 0).</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>Ví dụ: </b></span></span></span>

<table align="center" class="MsoTableGrid" style="border-collapse:collapse; border:none">
	<tbody>
		<tr>
			<td style="border-bottom:1px solid black; width:294px; padding:0cm 7px 0cm 7px; border-top:1px solid black; border-right:1px solid black; border-left:1px solid black"><span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b>Bai2.inp</b></span></span></span></td>
			<td style="border-bottom:1px solid black; width:150px; padding:0cm 7px 0cm 7px; border-top:1px solid black; border-right:1px solid black; border-left:none"><span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif"><b>Bai2.inp</b></span></span></span></td>
		</tr>
		<tr>
			<td style="border-bottom:1px solid black; width:294px; 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">Ky thi hoc sinh gioi Tinh mon tin hoc</span></span></span><br />
			<span style="font-size:12pt"><span style="line-height:110%"><span style="font-family:&#039;Times New Roman&#039;,serif">hoc sinh gioi mon Tin hoc</span></span></span></td>
			<td style="border-bottom:1px solid black; width:150px; 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">14</span></span></span></td>
		</tr>
	</tbody>
</table>

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

<pre>
<code class="language-python">Const fi=&#039;Bai2.inp&#039;;
      fo=&#039;Bai2.out&#039;;
var S1,S2: string;
    i,j,l1,l2,k,kmax:byte;
procedure doctep;
var f:text;
begin
  assign(f,fi);
  reset(f);
  readln(f,s1);
  readln(f,s2);
 close(f);
end;
procedure capnhat;
begin
  if kmax &lt; k then kmax:=k;
end;
procedure xuly;
begin
  l1:=length(s1);
  l2:=length(s2);
  k:=0;
  kmax:=0;
  for i:=1 to l1 do
    for j:=1 to l2 do
      if s1&#91;i&#93;=s2&#91;j&#93; then
      begin
        k:=1;
        while (i+k&lt;=l1) and (j+k&lt;=l2) and (s1&#91;i+k&#93;=s2&#91;j+k&#93;) do inc(k);
        capnhat;
      end;
end;
procedure ghitep;
var f:text;
begin
  assign(f,fo);
  rewrite(f);
  writeln(f,kmax);
  close(f);
end;
BEGIN
 DOCTEP;
 XULY;
 GHITEP;
END.</code></pre>

<h2><strong>Solution</strong></h2>
Dùng hai vòng lặp để so sánh các ký tự của chuỗi s1 với tất cả ký tự của chuỗi s2. Nếu chúng bằng nhau thì cho k:=1. Đồng thời dùng vòng while để kiểm tra các phần tử tiếp theo của cả 2 chuỗi có bằng nhau hay không? nếu bằng thì tăng k lên 1. và chạy thủ tục capnhat để tìm kmax, (là độ dài chuỗi dài nhất).

<h2><b>Viết theo quy hoạch động bằng Python</b></h2>

<h3><b>Solution</b></h3>

<p>Để viết theo quy hoạch động ta tạo một mảng 2 chiều dp <strong>(Có số cột chính là độ dài của xâu s1; Có số hàng chính là độ dài của xâu s2).</strong> Mảng này sẽ lưu lại độ dài của các xâu con chung. Như vậy thì giá trị tạo cột<code>`i`</code>, hàng <code>`j`</code> sẽ là&nbsp;<code>`dp&#91;i&#93;&#91;j&#93;`</code>&nbsp;đại diện cho độ dài của xâu con chung liên tiếp dài nhất, kết thúc tại ký tự thứ&nbsp;<code>`i`</code>&nbsp;của xâu&nbsp;<code>`s1`</code>&nbsp;và ký tự thứ&nbsp;<code>`j`</code>&nbsp;của xâu&nbsp;<code>`s2`</code>.&nbsp;&nbsp;Với mỗi ô&nbsp;<code>`(i, j)`</code>&nbsp;trong ma trận, nếu ký tự tại vị trí&nbsp;<code>`i`</code>&nbsp;của xâu&nbsp;<code>`s1`</code>&nbsp;bằng ký tự tại vị trí&nbsp;<code>`j`</code>&nbsp;của xâu&nbsp;<code>`s2`</code>&nbsp;thì ta gán&nbsp;<code>`dp&#91;i&#93;&#91;j&#93; = dp&#91;i-1&#93;&#91;j-1&#93; + 1`</code>, tức là tăng giá trị của&nbsp;<code>`dp&#91;i&#93;&#91;j&#93;`</code>&nbsp;lên 1 so với ô ở phía trước đó, đồng thời lúc này ta so sánh&nbsp;<code>`dp&#91;i&#93;&#91;j&#93;`</code>&nbsp;với&nbsp;<code>`max`</code>&nbsp;để cập nhật lại giá trị&nbsp;<code>`max`</code>&nbsp;để lưu độ dài xâu con chung dài nhất. Nếu không,&nbsp;<code>`dp&#91;i&#93;&#91;j&#93;`</code>&nbsp;sẽ bằng 0. Bài toán này không yêu cầu in ra dãy con chung dài nhất nên ta không cần truy vết, lúc đó ta sẽ code như sau:</p>

<h3><strong>Code python</strong></h3>

<pre>
<code class="language-python"># Đọc dữ liệu từ file input
with open(&quot;Bai2.inp&quot;, &quot;r&quot;) as f:
    s1 = f.readline().strip()
    s2 = f.readline().strip()

# Tạo bảng để lưu độ dài của xâu con chung
dp = &#91;&#91;0&#93; * (len(s2) + 1) for _ in range(len(s1) + 1)&#93;

max=0
# Duyệt qua các phần tử của 2 xâu và tính độ dài xâu con chung tại mỗi ô của bảng
for i in range(1, len(s1) + 1):
    for j in range(1, len(s2) + 1):
        if s1&#91;i - 1&#93; == s2&#91;j - 1&#93;:  # Nếu hai ký tự giống nhau
            dp&#91;i&#93;&#91;j&#93; = dp&#91;i - 1&#93;&#91;j - 1&#93; + 1  # Cộng thêm 1 vào độ dài của xâu con chung
            if dp&#91;i&#93;&#91;j&#93;&gt;max:
                max=dp&#91;i&#93;&#91;j&#93; # Cập nhật lại max.

# In ra độ dài của xâu con chung dài nhất
with open(&quot;Bai2.out&quot;, &quot;w&quot;) as f:
    f.write(str(max))</code></pre>

<h1>&nbsp;</h1>

<h2><strong>Truy vết: Nếu bài toán yêu cầu in ra xâu con chung</strong></h2>
Để truy vết ta cần dùng thêm 2 biết lưu vị trí bắt đầu và kết thúc của xâu con chung dài nhất, biến này sẽ thay đổi khi <code>`max`</code> thay đổi. Ta sẽ khởi tạo thêm 2 biến <code>`start_index=None`</code> và <code>`end_index=None`</code>. Và ta sẽ gán <code>`start_index =&nbsp;</code>i - max<code>`</code> và <code>`start_index = i - 1</code><code>`</code> mỗi khi <code>`max</code><code>`</code> thay đổi.

<h3><strong>Code truy vết bằng python</strong></h3>

<pre>
<code class="language-python"># Đọc dữ liệu từ file input
with open(&quot;Bai2.inp&quot;, &quot;r&quot;) as f:
    s1 = f.readline().strip()
    s2 = f.readline().strip()

# Tạo bảng để lưu độ dài của xâu con chung
dp = &#91;&#91;0&#93; * (len(s2) + 1) for _ in range(len(s1) + 1)&#93;

start_index = None  # index bắt đầu của xâu con chung liên tiếp dài nhất
end_index = None  # index kết thúc của xâu con chung liên tiếp dài nhất
max=0   # Độ dài xâu con chung dài nhất
# Duyệt qua các phần tử của 2 xâu và tính độ dài xâu con chung tại mỗi ô của bảng
for i in range(1, len(s1) + 1):
    for j in range(1, len(s2) + 1):
        if s1&#91;i - 1&#93; == s2&#91;j - 1&#93;:  # Nếu hai ký tự giống nhau
            dp&#91;i&#93;&#91;j&#93; = dp&#91;i - 1&#93;&#91;j - 1&#93; + 1  # Cộng thêm 1 vào độ dài của xâu con chung
            if dp&#91;i&#93;&#91;j&#93;&gt;max:
                max=dp&#91;i&#93;&#91;j&#93; # Cập nhật lại max
                start_index = i - max
                end_index = i - 1

# In ra độ dài của xâu con chung dài nhất
with open(&quot;Bai2.out&quot;, &quot;w&quot;) as f:
    f.write(str(max))

# In xâu con lớn nhất ra màn hình
if max!=0:
    print(s1&#91;start_index:end_index+1&#93;)
else: print(&#039;Không co xâu chung nào&#039;)
</code></pre>
&nbsp;

<h2><b>Các test</b></h2>
Các test được đính kèm cuối bài viết.<br />
&nbsp;
		</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/cau-2-xau-con-chung-dai-nhat-2012-2013-37.html" title="Quy hoạch động | Xâu con chung dài nhất | Câu 2 - Đề thi HSG tỉnh Nghệ An | năm 2012 - 2013">https://baitaponha.com/savefile/giai-de-tin-hoc/cau-2-xau-con-chung-dai-nhat-2012-2013-37.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=i3SwdI73" 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>