<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>#!SUITS &#187; Programming</title>
	<atom:link href="http://suits.it.usyd.edu.au/wordpress/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://suits.it.usyd.edu.au/wordpress</link>
	<description>Sydney University IT Society</description>
	<lastBuildDate>Sun, 18 Oct 2009 14:50:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Functional Programming and Haskell</title>
		<link>http://suits.it.usyd.edu.au/wordpress/2008/10/10/functional-programming-and-haskell/</link>
		<comments>http://suits.it.usyd.edu.au/wordpress/2008/10/10/functional-programming-and-haskell/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 04:09:23 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[camp]]></category>
		<category><![CDATA[functional]]></category>
		<category><![CDATA[Haskell]]></category>

		<guid isPermaLink="false">http://suits.it.usyd.edu.au/wordpress/?p=423</guid>
		<description><![CDATA[At the end of SUITS camp this year, Tim Dawborn and James Constable gave an interesting introductory mini-lecture on Haskell and functional languages in general. I know it&#8217;s been a while since then, but I only just had the chance to edit and upload it.
Video after the break!


Functinal Programming and Haskell from Edmund Tse on [...]]]></description>
			<content:encoded><![CDATA[<p>At the end of SUITS camp this year, Tim Dawborn and James Constable gave an interesting introductory mini-lecture on Haskell and functional languages in general. I know it&#8217;s been a while since then, but I only just had the chance to edit and upload it.</p>
<p><a href="http://vimeo.com/1920921">Video</a> after the break!</p>
<p><span id="more-423"></span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="302" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=1920921&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="302" src="http://vimeo.com/moogaloop.swf?clip_id=1920921&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<a href="http://vimeo.com/1920921?pg=embed&amp;sec=1920921">Functinal Programming and Haskell</a> from <a href="http://vimeo.com/edmund?pg=embed&amp;sec=1920921">Edmund Tse</a> on <a href="http://vimeo.com?pg=embed&amp;sec=1920921">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://suits.it.usyd.edu.au/wordpress/2008/10/10/functional-programming-and-haskell/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Algorithms and Problem Solving 2008 Week 4</title>
		<link>http://suits.it.usyd.edu.au/wordpress/2008/04/06/advanced-algorithms-and-problem-solving-2008-week-4/</link>
		<comments>http://suits.it.usyd.edu.au/wordpress/2008/04/06/advanced-algorithms-and-problem-solving-2008-week-4/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 08:56:15 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://suits.it.usyd.edu.au/wordpress/?p=45</guid>
		<description><![CDATA[Problem 1 &#8211; Decryption
As you pass through the intergalactic gateway posing as the door to lab 117 only one thought crosses your mind &#8211; &#8216;Here we go again&#8230;&#8217;.
When your vision stabilises you see a small table in front of you with some paper on it. Part of the text on the page looks like english [...]]]></description>
			<content:encoded><![CDATA[<h3>Problem 1 &#8211; Decryption</h3>
<p>As you pass through the intergalactic gateway posing as the door to lab 117 only one thought crosses your mind &#8211; &#8216;Here we go again&#8230;&#8217;.</p>
<p>When your vision stabilises you see a small table in front of you with some paper on it. Part of the text on the page looks like english but then there is a long line of nonsense at the end. Looking closer you read:</p>
<p>To escape this room you will need to follow the encrypted instructions below. Don&#8217;t recognise the encryption scheme? Well read on then.</p>
<p><span id="more-45"></span></p>
<p>I started with plaintext and jumbled it up to produce the ciphertext. To do this I generated a sequence of numbers, then one at a time I took the next number in the sequence and counted that many places along my plaintext (looping back to the start if necessary). The letter I got to was removed and added to the ciphertext. This process was repeated until all the letters in the message had been used up.</p>
<p>The sequence was generated as follows:</p>
<ul>
<li> I started with 1, 2, 1</li>
<li> To generate the next number I added the previous number to the number three previous (for example, to get the fourth number I added 1 and 1, getting 2)</li>
<li> If the number just generated was larger than 1000, instead I took the number mod 1000 (so 1025 became 25)</li>
<li> Once N numbers were generated I stopped and reversed the entire list</li>
</ul>
<p>After reading all the text you whip out your trusty laptop and start coding.</p>
<h4>Input</h4>
<p>The first line will contain a single number, &#8216;N&#8217;, whch indicates how many numbers in the sequence to generate before reversing it. The second line will contain a line of text, composed of only lowercase characters (&#8217;a-z&#8217;).</p>
<h4>Output</h4>
<p>Your program should print a single line to stdout &#8211; the decrypted message.</p>
<h4>Sample Input</h4>
<p>6 olehl</p>
<h4>Sample Output</h4>
<p>hello</p>
<h3>Problem 2 &#8211; Portal mania</h3>
<p>Once decrypted, the message describes how to escape the room you are in. It turns out that this room is one of many in a long row, and the table is in fact a portal device with controls on its underside.</p>
<p>The controls consist of a series of buttons, each of which will take you forward a certain number of rooms. Also, rather than draining power when pressed, the buttons will add a certain amount of power. To escape you need to get as much power as possible once you reach the final room in the row, allowing you to activate a special button that will hopefully take you away from this nightmare.</p>
<h4>Input</h4>
<p>The first line of input will contain two integers, B and R. B is the number of buttons on the machine (0 &lt; B &lt; 10,000). R is the number of rooms (0 &lt; R &lt; 10,000).</p>
<p>Following this will be B lines, each describing a single button. Each line will have two numbers, the distance the button will take you forward and the amount of energy it will add to the portal machine in the process. You are gauanteed that one button will be present that takes you forward one room, but provides no extra energy.</p>
<h4>Output</h4>
<p>You must produce a single number, the maximum amount of energy the machine can have when you reach the final room.</p>
<h4>Sample Input</h4>
<p>3 9 1 0 3 4 4 5</p>
<h4>Sample Output</h4>
<p>12</p>
<h3>One entrance, many exits</h3>
<p>After pressing the special button you find yourself standing in a room with a bunch of other suits members, K of you in total. There are a number of exits from the room and a map on one wall. Looking at the map you see a &#8216;you are here&#8217; marker on one point and a bunch of the other points are marked as exits.</p>
<p>The map also kindly informs you that while everyone may walk around as much as they like, each exit will only accept one person. Also, a timer starts as soon as the first person leaves this room. If you don&#8217;t choose the optimum set of exits and travel to them by the shortest routes, you will still be here when the place explodes.</p>
<p>You tell everyone what the map says and then get to work figuring out which K exits to use and how to get to them.</p>
<h4>Input</h4>
<p>The first line will contain five numbers, N, L, K and E, S. These are:</p>
<ul>
<li> The number of rooms, 0 &lt; N &lt; 1,000,000</li>
<li> The number of links between rooms, 0 &lt; L &lt; 1,000,000</li>
<li> The number of suits members escaping, 0 &lt; K &lt; N</li>
<li> The number of exits, 0 &lt; E &lt; N</li>
<li> The starting room, S, 1 &lt;= S &lt;= N</li>
</ul>
<p>Following this will be L lines, each describing a single link with three numbers, the starting point, the ending point and the length (all integers).</p>
<p>Following this will be E lines, each with a single integer, signifying that that point is an exit</p>
<h4>Output</h4>
<p>You must produce K lines each containing a series of numbers describing a path to an exit.</p>
<h4>Sample Input</h4>
<p>5 6 2 3 0 1 2 10 1 3 12 3 4 10 2 4 10 4 5 1 1 4 1 2 3 5</p>
<h4>Sample Output</h4>
<p>1 2 1 4 5</p>
]]></content:encoded>
			<wfw:commentRss>http://suits.it.usyd.edu.au/wordpress/2008/04/06/advanced-algorithms-and-problem-solving-2008-week-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Advanced Algorithms and Problem Solving 2008 Week 1</title>
		<link>http://suits.it.usyd.edu.au/wordpress/2008/03/24/advanced-algorithms-and-problem-solving-2008-week-1/</link>
		<comments>http://suits.it.usyd.edu.au/wordpress/2008/03/24/advanced-algorithms-and-problem-solving-2008-week-1/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 08:51:30 +0000</pubDate>
		<dc:creator>Edmund Tse</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://suits.it.usyd.edu.au/wordpress/?p=43</guid>
		<description><![CDATA[This week we introduced the game Khiva and set two problems:
Running Median
Design a data structure + algorithm that will allow you to most efficiently keep a running median. I will give you numbers and tell you to remove certain numbers and at any point I could also ask you what the median is. All the [...]]]></description>
			<content:encoded><![CDATA[<p>This week we introduced the game Khiva and set two problems:</p>
<h3>Running Median</h3>
<p>Design a data structure + algorithm that will allow you to most efficiently keep a running median. I will give you numbers and tell you to remove certain numbers and at any point I could also ask you what the median is. All the operations should be reasonably fast.</p>
<h3>Wall construction</h3>
<p>You have a grid of squares, some of which contain walls. You want to fill in the minimum number of extra squares so that once you are done there is no path from the top of the grid to the bottom (movement is horizontal and vertical).</p>
<h3><a title="Project Khiva" href="/wordpress/events/programming/project-khiva/">Khiva</a></h3>
<p>You must design a bot to play a game called &#8216;Khiva&#8217; &#8211; see its page for details.</p>
]]></content:encoded>
			<wfw:commentRss>http://suits.it.usyd.edu.au/wordpress/2008/03/24/advanced-algorithms-and-problem-solving-2008-week-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
