<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=LongestNap%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD</id>
	<title>LongestNap/문보창 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=LongestNap%2F%EB%AC%B8%EB%B3%B4%EC%B0%BD"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=LongestNap/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;action=history"/>
	<updated>2026-05-15T08:13:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=LongestNap/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=34286&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:23, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=LongestNap/%EB%AC%B8%EB%B3%B4%EC%B0%BD&amp;diff=34286&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==== 소감 ====&lt;br /&gt;
2005/02/20 Accepted 0:00.002 64 &lt;br /&gt;
그다지 구상이 필요없는 쉬운 문제였다. 그러나, 출력 오류 잡는데 상당한 시간을 허비했다. 01분과 1분은 분명 다르다.&lt;br /&gt;
&lt;br /&gt;
==== 코드 ====&lt;br /&gt;
 // no10191 - Longest Nap&lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;algorithm&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 struct Promise&lt;br /&gt;
 {&lt;br /&gt;
 	int start;&lt;br /&gt;
 	int end;&lt;br /&gt;
 	bool operator() (const Promise &amp;amp;amp; a, const Promise &amp;amp;amp; b)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (a.start &amp;amp;lt; b.start) &lt;br /&gt;
 			return true; &lt;br /&gt;
 		else return false;&lt;br /&gt;
 	}&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 const int MAX = 100;&lt;br /&gt;
 const int START_TIME = 10;&lt;br /&gt;
 const int END_TIME = 18;&lt;br /&gt;
 &lt;br /&gt;
 inline void eatline() { while (cin.get() != &amp;#039;\n&amp;#039; &amp;amp;amp;&amp;amp;amp; cin.peek() != EOF) continue; };&lt;br /&gt;
 int make_schedule(Promise * pro);&lt;br /&gt;
 Promise set_naptime(const Promise * pro, const int &amp;amp;amp; nPromise);&lt;br /&gt;
 void show(const Promise &amp;amp;amp; nap, const int &amp;amp;amp; index);&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	Promise promise[MAX];&lt;br /&gt;
 	int i = 0;&lt;br /&gt;
 	while (cin.peek() != EOF)&lt;br /&gt;
 	{&lt;br /&gt;
 		i++;&lt;br /&gt;
 		int nPromise = make_schedule(promise);&lt;br /&gt;
 		sort(&amp;amp;amp;promise[0], &amp;amp;amp;promise[nPromise], Promise());&lt;br /&gt;
 		Promise nap = set_naptime(promise, nPromise);&lt;br /&gt;
 		show(nap, i);&lt;br /&gt;
 	}&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int make_schedule(Promise * pro)&lt;br /&gt;
 {&lt;br /&gt;
 	int nPromise;&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; nPromise;&lt;br /&gt;
 	int i;&lt;br /&gt;
 	int shour, smin, ehour, emin;&lt;br /&gt;
 	for (i=0; i&amp;amp;lt;nPromise; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; shour, cin.get();&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; smin, cin.get();&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; ehour, cin.get();&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; emin;&lt;br /&gt;
 		eatline();&lt;br /&gt;
 		pro[i].start = shour * 60 + smin;&lt;br /&gt;
 		pro[i].end = ehour * 60 + emin;	&lt;br /&gt;
 	}&lt;br /&gt;
 	return nPromise;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 Promise set_naptime(const Promise * pro, const int &amp;amp;amp; nPro)&lt;br /&gt;
 {&lt;br /&gt;
 	Promise nap;&lt;br /&gt;
 	int naptime = pro[0].start - START_TIME * 60;&lt;br /&gt;
 	nap.start = START_TIME * 60;&lt;br /&gt;
 	int i;&lt;br /&gt;
 	for (i=1; i&amp;amp;lt;nPro; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		if (naptime &amp;amp;lt; (pro[i].start - pro[i-1].end))&lt;br /&gt;
 		{&lt;br /&gt;
 			naptime = pro[i].start - pro[i-1].end;&lt;br /&gt;
 			nap.start = pro[i-1].end;&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 	if (naptime &amp;amp;lt; (END_TIME * 60 - pro[nPro-1].end))&lt;br /&gt;
 	{&lt;br /&gt;
 		naptime = END_TIME * 60 - pro[nPro-1].end;&lt;br /&gt;
 		nap.start = pro[nPro-1].end;&lt;br /&gt;
 	}&lt;br /&gt;
 	nap.end = nap.start + naptime;&lt;br /&gt;
 	return nap;&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 void show(const Promise &amp;amp;amp; nap, const int &amp;amp;amp; index)&lt;br /&gt;
 {&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Day #&amp;quot; &amp;amp;lt;&amp;amp;lt; index &amp;amp;lt;&amp;amp;lt; &amp;quot;: the longest nap starts at &amp;quot; &amp;amp;lt;&amp;amp;lt; nap.start/60 &amp;amp;lt;&amp;amp;lt; &amp;quot;:&amp;quot;;&lt;br /&gt;
 	if (nap.start%60 &amp;amp;lt; 10)&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; &amp;quot;0&amp;quot; &amp;amp;lt;&amp;amp;lt; nap.start%60;&lt;br /&gt;
 	else cout &amp;amp;lt;&amp;amp;lt; nap.start%60;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; &amp;quot; and will last for &amp;quot;;&lt;br /&gt;
 &lt;br /&gt;
 	int during = nap.end - nap.start;&lt;br /&gt;
 	if (during &amp;amp;gt;= 60)&lt;br /&gt;
 	{&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; during/60 &amp;amp;lt;&amp;amp;lt; &amp;quot; hours and &amp;quot; &amp;amp;lt;&amp;amp;lt; during%60 &amp;amp;lt;&amp;amp;lt; &amp;quot; minutes.\n&amp;quot;;&lt;br /&gt;
 	}&lt;br /&gt;
 	else&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; during &amp;amp;lt;&amp;amp;lt; &amp;quot; minutes.\n&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
----&lt;br /&gt;
[[LongestNap]] [[문보창]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>