<!DOCTYPE html>
	<html lang="vi" xmlns="http://www.w3.org/1999/xhtml" prefix="og: http://ogp.me/ns#">
	<head>
<title>Ổ Điện | Đề thi HSG tin 12 Nghệ An | năm học 2022-2023</title>
<meta name="description" content="Ổ Điện | Đề thi HSG tin 12 Nghệ An | năm học 2022-2023 - 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="Ổ Điện | Đề thi HSG tin 12 Nghệ An | năm học 2022-2023">
<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-o-dien-de-thi-hsg-tinh-lop-12-nghe-an-nam-hoc-2022-2023-33.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-o-dien-de-thi-hsg-tinh-lop-12-nghe-an-nam-hoc-2022-2023-33.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-o-dien-de-thi-hsg-tinh-lop-12-nghe-an-nam-hoc-2022-2023-33.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>Ổ Điện | Đề thi HSG tin 12 Nghệ An | năm học 2022-2023</h1>
		<ul class="list-inline">
			<li>Thứ sáu - 05/05/2023 17:20</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">
						<div class="pull-left imghome">
				<img alt="Giải câu 2&#x3A; Ổ Điện &#40;Đề thi HSG tỉnh lớp 12 Nghệ An năm học 2022-2023&#41;" src="https://baitaponha.com/assets/news/2023_04/anh-chup-man-hinh-2023-05-06-141921.png" width="100" class="img-thumbnail" />
								<p>
					<em>Giải câu 2&#x3A; Ổ Điện &#40;Đề thi HSG tỉnh lớp 12 Nghệ An năm học 2022-2023&#41;</em>
				</p>
			</div>
			<p><strong>Câu 2, Ổ điện - Đề thi HSG tin 12 tỉnh Nghệ An năm 2022-2023</strong></p>
Đây là một bài xử lý mảng một chiều cũng khá hay, bài này cũng tương đối dễ lấy điểm cho học sinh. Tuy nhiên đề thực hiện được bài này phải biết tư duy thực tế kết hợp với cách xử lý vòng lặp khi duyệt mảng. Mời thầy cô và các bạn tham khảo cách giải bài này với ngôn ngữ Python.
		</div>
		<div id="bodytext" class="clearfix">
			<p>&nbsp; &nbsp; &nbsp;Đức cùng nhóm bạn của mình được thầy giáo giao nhiệm vụ hỗ trợ chuẩn bị phòng máy cho kì thi lập trình danh giá được tổ chức sắp tới. Phòng máy có m máy tính, công việc của nhóm Đức là sử dụng các ổ cắm điện có dây để cung cấp nguồn điện cho m máy tính. Phòng máy chỉ có một ổ điện có một khe cắm ở trên tường là đang có điện, và được gọi là ổ điện nguồn. Hiện tại trong nhà kho có n ổ cắm điện có dây, mỗi ổ điện có một số khe cắm và một đường dây nối có phích cắm để có thể cắm đến ổ điện khác. Ta gọi các ổ điện này là ổ điện rời. Một ổ điện rời có điện chi khi phích cắm của nó được cắm vào ổ điện nguồn hoặc cắm vào một khe của ổ điện rời đang có điện. Chú ý là chỉ có một ổ điện rời được cắm vào ổ điện nguồn và mỗi khe có nhiều nhất một phích cắm được cắm vào. Để cung cấp nguồn điện cho m máy tính, mỗi máy tính cần được cắm vào một khe của ổ điện rời đang có điện. Cho biết số khe cắm của ổ điện rời thứ i là ai (1 sai &lt;10; i = 1, 2, 3, ...,n). Nhóm của Đức muốn sử dụng số ổ điện rời với số lượng ít nhất nhưng vẫn có thể cung cấp nguồn điện cho m máy tính.</p>

<h3><strong>&nbsp;Yêu cầu:</strong>&nbsp;</h3>
Tính xem, số lượng ổ điện rời ít nhất cần dùng là bao nhiêu?

<h3><strong>Dữ liệu</strong></h3>

<p>&nbsp;cho trong tệp văn bản ODien.Inp gồm:<br />
• Dòng 1 ghi 2 số nguyên dương n và m tương ứng là số ổ điện rời và số máy tính.<br />
• Dòng 2 ghi n số nguyên dương a.i ( 1&lt;= a.i &lt;= 10) lần lượt là số khe cắm của n ổ điện rời.</p>

<h3><strong>Kết quả:</strong></h3>

<p>&nbsp;ghi ra tệp văn bản ODien.Out gồm một số nguyên duy nhất là số ổ điện rời ít nhất cần sử dụng để cung cấp nguồn điện cho m máy tính. Nếu không thể cung cấp nguồn điện cho m máy tính khi sử dụng cả n ổ điện rời thì ghi ra −1.</p>

<h3><img alt="" height="111" src="https://baitaponha.com/uploads/news/2023_04/image-20230421021402-1.png" width="814" /></h3>

<h3>Ví dụ &nbsp; &nbsp;</h3>

<table border="1" cellpadding="0" cellspacing="0">
	<tbody>
		<tr>
			<td>
			<h3>&nbsp;&nbsp;Odien.Inp&nbsp;&nbsp;</h3>
			</td>
			<td>
			<h3>&nbsp; &nbsp;Odien.Out&nbsp; &nbsp;</h3>
			</td>
			<td>
			<h3>Giải thích</h3>
			</td>
		</tr>
		<tr>
			<td>
			<p>3&nbsp; 4</p>

			<p>3&nbsp; 2&nbsp; 2</p>
			</td>
			<td>
			<p>2</p>
			</td>
			<td>
			<p>Có 3 ổ điện rời và 4 máy tính.</p>

			<p>Có thể chọn 2 ổ điện là ổ điện 1 và 2:</p>

			<ul>
				<li>
				<p>Ổ điện 1 cắm vào ổ điện nguồn.</p>
				</li>
				<li>
				<p>Ổ điện 2 cắm vào 1 khe cắm của ổ điện 1.</p>
				</li>
			</ul>

			<p>Như vậy cả 2 ổ điện đều có điện. Ô điện 1 còn 2 khe cắm chưa sử dụng, ổ điện 2 còn 2 khe cắm chưa sử dụng. Tổng số khe cắm có điện chưa sử dụng là 4. Sử dụng 4 khe cắm này để cung cấp điện cho 4 máy tính bằng cách mỗi máy tính được cắm vào 1 khe.</p>
			</td>
		</tr>
		<tr>
			<td>
			<p>5&nbsp; 5</p>

			<p>1&nbsp; 3&nbsp; 1&nbsp; 2&nbsp; 1</p>
			</td>
			<td>
			<p>&nbsp;</p>
			</td>
			<td>
			<p>Có 5 ổ điện rời và 5 máy tính. Không thể sử dụng 5 ở điện rời để cung cấp điện cho 5 máy tính.</p>
			</td>
		</tr>
	</tbody>
</table>

<h2><strong>Giải:</strong></h2>
Cách giải bài này như sau: Ta phải sắp xếp dãy ổ cắp điện theo thứ tự giảm dần của lỗ cắm của ổ.

<ul>
	<li>Sau đó ta duyệt vòng lặp for qua từng ổ điện. Trong vòng lặp for ta kiểm tra nếu số máy tính còn lại &lt;= 0 thì ta thoát khỏi vòng lặp for. Tiếp tục kiểm tra số máy tính còn lại &gt; Khe cắm của ổ điệm đang xét thì số máy tính sẽ giảm đi số khe cắm trừ 1 (Vì trừ một chỗ để cắm ổ tiếp theo), đồng thời tăng biến cout,&nbsp;ngược lại số máy tính còn lại bé hơn hoặc bằng khe cắm của ổ đang xét thì số máy tính còn lại&nbsp; thì số máy tính còn lại giảm đúng bằng số khe cắm của ổ đang xét, đồng thời ta tăng biến cout và thoát khỏi vòng for.</li>
	<li>&nbsp;Sau khi thoát khỏi vòng for ( Có 2 trường hơp: TH1: đã duyệt hết vòng for; TH2 chưa duyệt hết vòng for nhưng số máy tính còn lại là đã hết. Lúc này ta kiểm tra xem nếu số máy tính còn lại mà &gt; 0 thì gán biến cout = -1.</li>
	<li>Đến đấy chỉ việc ghi biến cout vào tếp OUT là xong.</li>
</ul>

<h2><strong>Bài mẫu bằng Python:</strong>&nbsp;(Đã chủ thích trong code)</h2>

<pre>
<code class="language-python">with open(&quot;ODien.Inp&quot;, &quot;r&quot;) as f_in:
    n, m = map(int, f_in.readline().split())
    a = list(map(int, f_in.readline().split()))

# Sắp xếp giảm dần các ổ điện rời theo số khe cắm
a.sort(reverse=True)

# Tính số máy tính còn thiếu nguồn điện
so_may_con_lai = m

# Tính số ổ điện rời đã sử dụng
count = 0

# Duyệt qua từng ổ điện rời để cố gắng cung cấp nguồn điện cho số máy tính còn thiếu
for khe_cam in a:
    if so_may_con_lai &lt;= 0:
        break
    if so_may_con_lai &gt; khe_cam:
        so_may_con_lai -= (khe_cam-1)
    else: so_may_con_lai -= khe_cam
    count += 1

# Nếu vẫn còn máy tính cần nguồn điện thì không thể cung cấp được
if so_may_con_lai &gt; 0:
    count = -1

# Xuất kết quả ra tệp văn bản ODien.Out
with open(&quot;ODien.Out&quot;, &quot;w&quot;) as f_out:
    f_out.write(str(count))
</code></pre>

<h2><strong>Để nắm được thông tin cập nhật mới cũng như phản hồi về trang, các bạn tham gia nhóm facebook:</strong></h2>
<strong>Nhóm facebook:</strong>&nbsp;<a href="https://www.facebook.com/groups/baitaponha"><strong>f / BAITAPONHA</strong></a><br />
<strong>Trang facebook:</strong>&nbsp;<strong><a href="https://www.facebook.com/hocquainternet">f / HỌC MÃI</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/cau-2-o-dien-de-thi-hsg-tinh-lop-12-nghe-an-nam-hoc-2022-2023-33.html" title="Ổ Điện | Đề thi HSG tin 12 Nghệ An | năm học 2022-2023">https://baitaponha.com/savefile/giai-de-tin-hoc/cau-2-o-dien-de-thi-hsg-tinh-lop-12-nghe-an-nam-hoc-2022-2023-33.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>
<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>