<?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=Monocycle%2F%EA%B9%80%EC%83%81%EC%84%AD</id>
	<title>Monocycle/김상섭 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=Monocycle%2F%EA%B9%80%EC%83%81%EC%84%AD"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=Monocycle/%EA%B9%80%EC%83%81%EC%84%AD&amp;action=history"/>
	<updated>2026-05-15T01:46:20Z</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=Monocycle/%EA%B9%80%EC%83%81%EC%84%AD&amp;diff=34723&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=Monocycle/%EA%B9%80%EC%83%81%EC%84%AD&amp;diff=34723&amp;oldid=prev"/>
		<updated>2021-02-07T05:23:48Z</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; #include &amp;amp;lt;iostream&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;string&amp;amp;gt;&lt;br /&gt;
 #include &amp;amp;lt;list&amp;amp;gt;&lt;br /&gt;
 using namespace std;&lt;br /&gt;
 &lt;br /&gt;
 #define Max 25&lt;br /&gt;
 &lt;br /&gt;
 #define north 0&lt;br /&gt;
 #define east 1&lt;br /&gt;
 #define south 2&lt;br /&gt;
 #define west 3&lt;br /&gt;
 &lt;br /&gt;
 #define right 1&lt;br /&gt;
 #define left -1&lt;br /&gt;
 &lt;br /&gt;
 #define Max_turn 3&lt;br /&gt;
 &lt;br /&gt;
 #define Direction 4&lt;br /&gt;
 &lt;br /&gt;
 int now_row, now_col, terminal_row, terminal_col;&lt;br /&gt;
 bool table[Max][Max];&lt;br /&gt;
 int direction_row[4] = {-1,0 , 1,0 };&lt;br /&gt;
 int direction_col[4] = {0,1 ,0 ,-1 };&lt;br /&gt;
 &lt;br /&gt;
 struct state&lt;br /&gt;
 {&lt;br /&gt;
 	int row;&lt;br /&gt;
 	int col;&lt;br /&gt;
 	int direction;&lt;br /&gt;
 	int length;	&lt;br /&gt;
 	int time;&lt;br /&gt;
 	int turn_num;&lt;br /&gt;
 	int pre_turn;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 void init(int M, int N)&lt;br /&gt;
 {&lt;br /&gt;
 	int i, j;&lt;br /&gt;
 	string temp;&lt;br /&gt;
 	&lt;br /&gt;
 	for(i = 0; i &amp;amp;lt; M; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		for(j = 0; j &amp;amp;lt; N; j++)&lt;br /&gt;
 			table[i][j] = false;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	for(i = 0; i &amp;amp;lt; M; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; temp;		&lt;br /&gt;
 		for(j = 0; j &amp;amp;lt; N; j++)&lt;br /&gt;
 		{&lt;br /&gt;
 			if(temp[j] == &amp;#039;.&amp;#039;)&lt;br /&gt;
 				table[i][j]	= true;&lt;br /&gt;
 			if(temp[j] == &amp;#039;S&amp;#039;)&lt;br /&gt;
 			{&lt;br /&gt;
 				table[i][j]	= true;&lt;br /&gt;
 				now_row = i;&lt;br /&gt;
 				now_col = j;&lt;br /&gt;
 			}&lt;br /&gt;
 			if(temp[j] == &amp;#039;T&amp;#039;)&lt;br /&gt;
 			{&lt;br /&gt;
 				table[i][j]	= true;&lt;br /&gt;
 				terminal_row = i;&lt;br /&gt;
 				terminal_row = j;&lt;br /&gt;
 			}&lt;br /&gt;
 		}&lt;br /&gt;
 	}&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int length(int M, int N)&lt;br /&gt;
 {&lt;br /&gt;
 	&lt;br /&gt;
 	state now = {now_row,now_col, 0, 0, 0, 0, 0}, next;&lt;br /&gt;
 	list&amp;amp;lt;state&amp;amp;gt; test;&lt;br /&gt;
 	&lt;br /&gt;
 	int a =5;&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; a;&lt;br /&gt;
 	while(now.row != terminal_row || now.col != terminal_col || now.length%5 != 0)&lt;br /&gt;
 	{&lt;br /&gt;
 		next = now;&lt;br /&gt;
 		next.row += direction_row[next.direction];&lt;br /&gt;
 		next.col += direction_col[next.direction];&lt;br /&gt;
 		next.time++;&lt;br /&gt;
 		next.length++;&lt;br /&gt;
 		next.pre_turn = next.turn_num = NULL;&lt;br /&gt;
 		if(next.row &amp;amp;gt;= 0 &amp;amp;amp;&amp;amp;amp; next.row &amp;amp;lt; M &amp;amp;amp;&amp;amp;amp; next.col &amp;amp;gt;= 0 &amp;amp;amp;&amp;amp;amp; next.col &amp;amp;lt; N &amp;amp;amp;&amp;amp;amp; table[next.row][next.col] )&lt;br /&gt;
 			test.push_back(next);	&lt;br /&gt;
 		&lt;br /&gt;
 		next = now;&lt;br /&gt;
 		if(next.turn_num &amp;amp;lt; Max_turn)&lt;br /&gt;
 		{&lt;br /&gt;
 			if(next.pre_turn == right)&lt;br /&gt;
 			{&lt;br /&gt;
 				next.turn_num++;&lt;br /&gt;
 				next.time++;&lt;br /&gt;
 				next.direction = (next.direction + right)%Direction;&lt;br /&gt;
 				test.push_back(next);&lt;br /&gt;
 			}&lt;br /&gt;
 			else if(next.pre_turn == left)&lt;br /&gt;
 			{&lt;br /&gt;
 				next.turn_num++;&lt;br /&gt;
 				next.time++;&lt;br /&gt;
 				next.direction = (next.direction + left)%Direction;&lt;br /&gt;
 				test.push_back(next);&lt;br /&gt;
 			}&lt;br /&gt;
 			else if(next.pre_turn == NULL)&lt;br /&gt;
 			{&lt;br /&gt;
 				next.turn_num++;&lt;br /&gt;
 				next.time++;&lt;br /&gt;
 				next.pre_turn = right;&lt;br /&gt;
 				next.direction = (next.direction + right)% Direction;&lt;br /&gt;
 				test.push_back(next);&lt;br /&gt;
 				next.pre_turn = left;&lt;br /&gt;
 				next.direction = (next.direction + 2*left)% Direction;&lt;br /&gt;
 				test.push_back(next);&lt;br /&gt;
 			}&lt;br /&gt;
 		}	&lt;br /&gt;
 		&lt;br /&gt;
 		now = test.front();&lt;br /&gt;
 		test.pop_front();&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	return now.length;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 void process(int M, int N)&lt;br /&gt;
 {&lt;br /&gt;
 	init(M,N);&lt;br /&gt;
 	int a = 10;&lt;br /&gt;
 	&lt;br /&gt;
 	&lt;br /&gt;
 	for(int i = 0; i &amp;amp;lt; M; i++)&lt;br /&gt;
 	{&lt;br /&gt;
 		for(int j = 0; j &amp;amp;lt; N; j++)&lt;br /&gt;
 			cout &amp;amp;lt;&amp;amp;lt;table[i][j];&lt;br /&gt;
 		cout &amp;amp;lt;&amp;amp;lt; endl;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	cout &amp;amp;lt;&amp;amp;lt; length(M,N) &amp;amp;lt;&amp;amp;lt; endl;;&lt;br /&gt;
 	&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int main()&lt;br /&gt;
 {&lt;br /&gt;
 	int M, N;&lt;br /&gt;
 	&lt;br /&gt;
 	cin &amp;amp;gt;&amp;amp;gt; M &amp;amp;gt;&amp;amp;gt; N;&lt;br /&gt;
 	&lt;br /&gt;
 	while(M != 0 || N != 0)&lt;br /&gt;
 	{&lt;br /&gt;
 		process(M,N);&lt;br /&gt;
 		cin &amp;amp;gt;&amp;amp;gt; M &amp;amp;gt;&amp;amp;gt; N;&lt;br /&gt;
 	}&lt;br /&gt;
 	&lt;br /&gt;
 	return 0;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>