<?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=AdventuresInMoving%3APartIV%2F%EA%B9%80%EC%83%81%EC%84%AD</id>
	<title>AdventuresInMoving:PartIV/김상섭 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=AdventuresInMoving%3APartIV%2F%EA%B9%80%EC%83%81%EC%84%AD"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=AdventuresInMoving:PartIV/%EA%B9%80%EC%83%81%EC%84%AD&amp;action=history"/>
	<updated>2026-05-15T01:24:57Z</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=AdventuresInMoving:PartIV/%EA%B9%80%EC%83%81%EC%84%AD&amp;diff=27522&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:22, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=AdventuresInMoving:PartIV/%EA%B9%80%EC%83%81%EC%84%AD&amp;diff=27522&amp;oldid=prev"/>
		<updated>2021-02-07T05:22:26Z</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;
 // 10201 - Adventures in Moving: Part IV &lt;br /&gt;
 #include &amp;amp;lt;iostream&amp;amp;gt; &lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define MAX_OIL 200 &lt;br /&gt;
 #define MAX_SIZE 103&lt;br /&gt;
 #define MAX_NUM 1000000000 &lt;br /&gt;
 &lt;br /&gt;
 typedef struct &lt;br /&gt;
 { &lt;br /&gt;
     int length; &lt;br /&gt;
     int price; &lt;br /&gt;
 }Station; &lt;br /&gt;
 &lt;br /&gt;
 static int totalLength;                /* 워털루에서 대도시까지의 거리 */ &lt;br /&gt;
 static int numStation;                /* 주유소 수 */ &lt;br /&gt;
 static Station station[MAX_SIZE];    /* 주유소 정보 */ &lt;br /&gt;
 &lt;br /&gt;
 inline  &lt;br /&gt;
 int getDistance(int i)  &lt;br /&gt;
 {  &lt;br /&gt;
     return station[i].length - station[i-1].length;  &lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 void input() &lt;br /&gt;
 { &lt;br /&gt;
     cin &amp;amp;gt;&amp;amp;gt; totalLength; &lt;br /&gt;
 	totalLength += 100;&lt;br /&gt;
     cin.get(); &lt;br /&gt;
     numStation = 1;&lt;br /&gt;
 	station[numStation].length = 0;&lt;br /&gt;
 	station[numStation].price = 0;&lt;br /&gt;
     while (cin.peek() != EOF &amp;amp;amp;&amp;amp;amp; cin.peek() != &amp;#039;\n&amp;#039;) &lt;br /&gt;
     { &lt;br /&gt;
         numStation++; &lt;br /&gt;
         cin &amp;amp;gt;&amp;amp;gt; station[numStation].length &amp;amp;gt;&amp;amp;gt; station[numStation].price; &lt;br /&gt;
         cin.get(); &lt;br /&gt;
     } &lt;br /&gt;
     cin.get();&lt;br /&gt;
 	numStation++;&lt;br /&gt;
 	station[numStation].length = totalLength;&lt;br /&gt;
 	station[numStation].price = 0;&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 void process() &lt;br /&gt;
 { &lt;br /&gt;
 	int maxmin, maxminprice , now = 1, tank = 100, go = 100, search = 2, cost = 0;&lt;br /&gt;
 	&lt;br /&gt;
     while(now != numStation)&lt;br /&gt;
 	{&lt;br /&gt;
 		maxmin = 0;&lt;br /&gt;
 		maxminprice = 1000000;&lt;br /&gt;
 		while(station[now].length + go &amp;amp;gt;= station[search].length)&lt;br /&gt;
 		{&lt;br /&gt;
 			// 서치의 가격이 작거나 같을때&lt;br /&gt;
 			if(station[now].price &amp;amp;gt; station[search].price)&lt;br /&gt;
 			{&lt;br /&gt;
 				if(station[search].length - station[now].length &amp;amp;gt;= tank)&lt;br /&gt;
 				{				&lt;br /&gt;
 					cost += (station[search].length - station[now].length - tank)*station[now].price;&lt;br /&gt;
 					tank = 0;&lt;br /&gt;
 				}&lt;br /&gt;
 				else&lt;br /&gt;
 					tank = tank - station[search].length + station[now].length;&lt;br /&gt;
 				now = search++;&lt;br /&gt;
 				maxmin = 0;&lt;br /&gt;
 				break;&lt;br /&gt;
 			}&lt;br /&gt;
 			// 서치의 가격이 클때 &lt;br /&gt;
 			else&lt;br /&gt;
 			{&lt;br /&gt;
 				if(maxminprice &amp;amp;gt; station[search].price)&lt;br /&gt;
 				{&lt;br /&gt;
 					maxmin = search;&lt;br /&gt;
 					maxminprice = station[search].price;&lt;br /&gt;
 				}&lt;br /&gt;
 				search++;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 		// 작은게 없을때&lt;br /&gt;
 		if(now + 1 == search &amp;amp;amp;&amp;amp;amp; station[now].length + go &amp;amp;lt; station[search].length)&lt;br /&gt;
 		{&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt; &amp;quot;Impossible\n&amp;quot;;&lt;br /&gt;
 			return;&lt;br /&gt;
 		}&lt;br /&gt;
 		if(maxmin)&lt;br /&gt;
 		{&lt;br /&gt;
 			if(station[maxmin].length - station[now].length &amp;amp;gt;= tank)&lt;br /&gt;
 			{&lt;br /&gt;
 				cost += (200 - tank)*station[now].price;&lt;br /&gt;
 				tank = go - station[maxmin].length + station[now].length;&lt;br /&gt;
 			}&lt;br /&gt;
 			else&lt;br /&gt;
 				tank = tank - station[maxmin].length + station[now].length;&lt;br /&gt;
 			&lt;br /&gt;
 			now = maxmin;&lt;br /&gt;
 			search = now +1;&lt;br /&gt;
 		}&lt;br /&gt;
 		go = 200;&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; cost &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 } &lt;br /&gt;
 &lt;br /&gt;
 int main() &lt;br /&gt;
 { &lt;br /&gt;
     int numCase; &lt;br /&gt;
     cin &amp;amp;gt;&amp;amp;gt; numCase; &lt;br /&gt;
     cin.get(), cin.get(); &lt;br /&gt;
     for (int i = 0; i &amp;amp;lt; numCase; i++) &lt;br /&gt;
     { &lt;br /&gt;
         input(); &lt;br /&gt;
         process(); &lt;br /&gt;
         if (i != numCase - 1) &lt;br /&gt;
             cout &amp;amp;lt;&amp;amp;lt; endl; &lt;br /&gt;
     } &lt;br /&gt;
     return 0; &lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>