<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
	<!-- DOMjudge version 3.3.2 -->
<title>Source: s1234</title>
<link rel="shortcut icon" href="../images/favicon.png" type="image/png" />
<link rel="stylesheet" href="../style.css" type="text/css" />
<link rel="stylesheet" href="style_jury.css" type="text/css" />
<script type="text/javascript" src="../js/sorttable.js"></script>
<script type="text/javascript" src="../js/domjudge.js"></script>
</head>
<body>

<h2>Source code for submission s1234</h2>

<p><a href="#diff">Go to diff to previous submission</a></p>

<div class="tabber"><div class="tabbertab"><h2 class="filename"><a name="source0"></a>ants.cpp</h2> 

<pre class="cpp" style="font-family:monospace;"><ol><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339900;">#include &lt;stdio.h&gt;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339900;">#include &lt;algorithm&gt;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339900;">#include &lt;string.h&gt;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #339900;">#define debug(format,...) fprintf(stderr, format, __VA_ARGS__)</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;">class</span> Ant<span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;">bool</span> operator<span style="color: #000080;">&lt;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> Ant<span style="color: #000040;">&amp;</span>, <span style="color: #0000ff;">const</span> Ant <span style="color: #000040;">&amp;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;">class</span> Ant <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">public</span><span style="color: #008080;">:</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">int</span> dir<span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">int</span> id<span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">int</span> <span style="color: #0000dd;">time</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">friend</span> <span style="color: #0000ff;">bool</span> operator<span style="color: #000080;">&lt;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> Ant<span style="color: #000040;">&amp;</span>, <span style="color: #0000ff;">const</span> Ant <span style="color: #000040;">&amp;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #ff0000; font-style: italic;">/*		bool operator&lt;= (const Ant &amp;ant) {</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #ff0000; font-style: italic;">			return this-&gt;id &lt;= ant.id;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #ff0000; font-style: italic;">		}*/</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">void</span> reverse<span style="color: #008000;">&#40;</span>Ant <span style="color: #000040;">*</span>ant<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			std<span style="color: #008080;">::</span><span style="color: #007788;">swap</span><span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span><span style="color: #008000;">&#40;</span>this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span><span style="color: #0000dd;">time</span>, ant<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span><span style="color: #0000dd;">time</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>dir <span style="color: #000040;">*</span><span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			ant<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>dir <span style="color: #000040;">*</span><span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">bool</span> compare<span style="color: #008000;">&#40;</span>Ant <span style="color: #000040;">*</span>ant<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>dir<span style="color: #000080;">==</span><span style="color: #0000dd;">1</span> <span style="color: #000040;">&amp;&amp;</span> ant<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>dir<span style="color: #000080;">==</span><span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				this<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>reverse<span style="color: #008000;">&#40;</span>ant<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">true</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000ff;">return</span> <span style="color: #0000ff;">false</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;">bool</span> operator<span style="color: #000080;">&lt;</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">const</span> Ant <span style="color: #000040;">&amp;</span>ant1, <span style="color: #0000ff;">const</span> Ant <span style="color: #000040;">&amp;</span>ant2<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">return</span> ant1.<span style="color: #007788;">id</span> <span style="color: #000080;">&lt;</span> ant2.<span style="color: #007788;">id</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #008000;">&#125;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #0000ff;">int</span> main<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	Ant ant<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">100000</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">int</span> ants, pos, len, i, j<span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">int</span> maxTime<span style="color: #000080;">=</span><span style="color: #000040;">-</span><span style="color: #0000dd;">1</span>, maxAnt1<span style="color: #000080;">=</span><span style="color: #000040;">-</span><span style="color: #0000dd;">1</span>, maxAnt2<span style="color: #000080;">=</span><span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">char</span> dir<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">3</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d %d&quot;</span>, <span style="color: #000040;">&amp;</span>len, <span style="color: #000040;">&amp;</span>ants<span style="color: #008000;">&#41;</span><span style="color: #000080;">&gt;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000dd;">memset</span><span style="color: #008000;">&#40;</span>ant, <span style="color: #0000dd;">0</span>, <span style="color: #008000;">&#40;</span>len<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #000040;">*</span><span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>Ant<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i<span style="color: #000080;">&lt;</span>ants<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000dd;">scanf</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">&quot;%d %s&quot;</span>, <span style="color: #000040;">&amp;</span>pos, dir<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			ant<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">id</span> <span style="color: #000080;">=</span> pos<span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			ant<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">dir</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>dir<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#93;</span><span style="color: #000080;">==</span><span style="color: #FF0000;">'L'</span> <span style="color: #008080;">?</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span> <span style="color: #008080;">:</span> <span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			ant<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span>.<span style="color: #0000dd;">time</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>ant<span style="color: #008000;">&#91;</span>pos<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">dir</span><span style="color: #000080;">==</span><span style="color: #000040;">-</span><span style="color: #0000dd;">1</span> <span style="color: #008080;">?</span> pos <span style="color: #008080;">:</span> len<span style="color: #000040;">-</span>pos<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span>,j<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i<span style="color: #000080;">&lt;=</span>len<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>i<span style="color: #000040;">!</span><span style="color: #000080;">=</span>j <span style="color: #000040;">&amp;&amp;</span> ant<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">dir</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				<span style="color: #0000dd;">memcpy</span><span style="color: #008000;">&#40;</span>ant<span style="color: #000040;">+</span>j,ant<span style="color: #000040;">+</span>i, <span style="color: #0000dd;">sizeof</span><span style="color: #008000;">&#40;</span>Ant<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				j<span style="color: #000040;">++</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i<span style="color: #000080;">&lt;</span>ants<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			j<span style="color: #000080;">=</span>i<span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000ff;">while</span><span style="color: #008000;">&#40;</span>ant<span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">compare</span><span style="color: #008000;">&#40;</span>ant<span style="color: #000040;">+</span>j<span style="color: #000040;">+</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;&amp;</span> j<span style="color: #000080;">&gt;</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>j<span style="color: #000080;">==</span><span style="color: #0000dd;">0</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">					<span style="color: #0000ff;">break</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				j<span style="color: #000040;">--</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		maxTime <span style="color: #000080;">=</span> maxAnt2 <span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">for</span><span style="color: #008000;">&#40;</span>i<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i<span style="color: #000080;">&lt;</span>ants<span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span>ant<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #0000dd;">time</span> <span style="color: #000080;">==</span> maxTime<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				maxAnt2 <span style="color: #000080;">=</span> ant<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">id</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #008000;">&#125;</span><span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>ant<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #0000dd;">time</span> <span style="color: #000080;">&gt;</span> maxTime<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				maxAnt1 <span style="color: #000080;">=</span> ant<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #007788;">id</span><span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				maxAnt2 <span style="color: #000080;">=</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				maxTime <span style="color: #000080;">=</span> ant<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span>.<span style="color: #0000dd;">time</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>maxAnt2 <span style="color: #000080;">==</span> <span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				<span style="color: #FF0000;">&quot;The last ant will fall down in %d seconds - started at %d.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>,</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				maxTime, maxAnt1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span><span style="color: #0000ff;">else</span> <span style="color: #008000;">&#123;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">			<span style="color: #0000dd;">printf</span><span style="color: #008000;">&#40;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				<span style="color: #FF0000;">&quot;The last ant will fall down in %d seconds - started at %d and %d.<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>,</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">				maxTime, maxAnt1, maxAnt2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">		<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">	<span style="color: #0000ff;">return</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span></div></li><li style="font-weight: bold; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;"><span style="color: #008000;">&#125;</span></div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li><li style="font-weight: normal; vertical-align:top;"><div style="font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;">&nbsp;</div></li></ol></pre></div></div><h2><a name="diff"></a>Diff to submission <a href="1142">s1142</a></h2>
<div class="tabber"><div class="tabbertab"><h2 class="filename"><a name="diff"></a>ants2.cpp</h2>

<pre class="output_text"><span class='diff-del'>--- c4.s1142.cteam102.ants.cpp.0.ants2.cpp</span>
<span class='diff-add'>+++ c4.s1234.cteam102.ants.cpp.0.ants.cpp</span>
@@ -1,105 +1,89 @@
<span class='diff-del'>-#include &lt;cstdio&gt;</span>
<span class='diff-del'>-#include &lt;cstring&gt;</span>
<span class='diff-add'>+#include &lt;stdio.h&gt;</span>
<span class='diff-add'>+#include &lt;algorithm&gt;</span>
<span class='diff-add'>+#include &lt;string.h&gt;</span>
 
<span class='diff-del'>-#include &lt;cstdlib&gt;</span>
<span class='diff-add'>+#define debug(format,...) fprintf(stderr, format, __VA_ARGS__)</span>
<span class='diff-add'>+class Ant;</span>
<span class='diff-add'>+bool operator&lt; (const Ant&amp;, const Ant &amp;);</span>
 
<span class='diff-del'>-struct Ant {</span>
<span class='diff-del'>-        int dir;</span>
<span class='diff-del'>-        int start;</span>
<span class='diff-add'>+class Ant {</span>
<span class='diff-add'>+        public:</span>
<span class='diff-add'>+                int dir;</span>
<span class='diff-add'>+                int id;</span>
<span class='diff-add'>+                int time;</span>
<span class='diff-add'>+                friend bool operator&lt; (const Ant&amp;, const Ant &amp;);</span>
<span class='diff-add'>+/*              bool operator&lt;= (const Ant &amp;ant) {</span>
<span class='diff-add'>+                        return this-&gt;id &lt;= ant.id;</span>
<span class='diff-add'>+                }*/</span>
<span class='diff-add'>+                void reverse(Ant *ant) {</span>
<span class='diff-add'>+                        std::swap&lt;int&gt;(this-&gt;time, ant-&gt;time);</span>
<span class='diff-add'>+                        this-&gt;dir *= -1;</span>
<span class='diff-add'>+                        ant-&gt;dir *= -1;</span>
<span class='diff-add'>+                }</span>
<span class='diff-add'>+                bool compare(Ant *ant) {</span>
<span class='diff-add'>+                        if(this-&gt;dir==1 &amp;&amp; ant-&gt;dir==-1) {</span>
<span class='diff-add'>+                                this-&gt;reverse(ant);</span>
<span class='diff-add'>+                                return true;</span>
<span class='diff-add'>+                        }</span>
<span class='diff-add'>+                        return false;</span>
<span class='diff-add'>+                }</span>
 };
 
<span class='diff-del'>-int main()</span>
<span class='diff-del'>-{</span>
<span class='diff-del'>-        int ants, pos, woodlen;</span>
<span class='diff-del'>-        char dir;</span>
<span class='diff-del'>-        while(scanf(&quot;%d %d&quot;, &amp;woodlen, &amp;ants)&gt;0) </span>
<span class='diff-del'>-        {</span>
<span class='diff-del'>-                Ant *wood[woodlen];</span>
<span class='diff-del'>-                memset (wood,NULL,woodlen*sizeof(Ant*));</span>
<span class='diff-add'>+bool operator&lt; (const Ant &amp;ant1, const Ant &amp;ant2) {</span>
<span class='diff-add'>+        return ant1.id &lt; ant2.id;</span>
<span class='diff-add'>+}</span>
<span class='diff-add'>+</span>
<span class='diff-add'>+</span>
<span class='diff-add'>+int main() {</span>
<span class='diff-add'>+        Ant ant[100000];</span>
<span class='diff-add'>+        int ants, pos, len, i, j;</span>
<span class='diff-add'>+        int maxTime=-1, maxAnt1=-1, maxAnt2=-1;</span>
<span class='diff-add'>+        char dir[3];</span>
<span class='diff-add'>+        while(scanf(&quot;%d %d&quot;, &amp;len, &amp;ants)&gt;0) {</span>
<span class='diff-add'>+                memset(ant, 0, (len+1)*sizeof(Ant));</span>
                 
<span class='diff-del'>-                for(int i=0; i&lt;ants; i++) </span>
<span class='diff-del'>-                {</span>
<span class='diff-del'>-                        scanf(&quot;%d %c&quot;, &amp;pos, &amp;dir);</span>
<span class='diff-del'>-                        Ant *a = new Ant;</span>
<span class='diff-del'>-                        if(dir=='R')</span>
<span class='diff-del'>-                                a-&gt;dir = 1;</span>
<span class='diff-del'>-                        else</span>
<span class='diff-del'>-                                a-&gt;dir = -1;</span>
<span class='diff-del'>-                        a-&gt;start=pos;</span>
<span class='diff-del'>-                        </span>
<span class='diff-del'>-                        wood[pos]=a;</span>
<span class='diff-del'>-                        printf( &quot;%d\n&quot;, a-&gt;dir );</span>
<span class='diff-add'>+                for(i=0; i&lt;ants; i++) {</span>
<span class='diff-add'>+                        scanf(&quot;%d %s&quot;, &amp;pos, dir);</span>
<span class='diff-add'>+                        ant[pos].id = pos;</span>
<span class='diff-add'>+                        ant[pos].dir = (dir[0]=='L' ? -1 : 1);</span>
<span class='diff-add'>+                        ant[pos].time = (ant[pos].dir==-1 ? pos : len-pos);</span>
                 }
<span class='diff-del'>-                                </span>
<span class='diff-del'>-                int time=1;</span>
<span class='diff-del'>-                Ant * Lf,*Rf;</span>
<span class='diff-del'>-                while (ants &gt;0)</span>
<span class='diff-del'>-                {</span>
<span class='diff-del'>-                        Lf=NULL;</span>
<span class='diff-del'>-                        Rf=NULL;</span>
<span class='diff-del'>-                        </span>
<span class='diff-del'>-                        if(( wood[0] != NULL ) &amp;&amp; ( wood[0]-&gt;dir==-1))//L</span>
<span class='diff-del'>-                        {</span>
<span class='diff-del'>-                                Lf=wood[0];</span>
<span class='diff-del'>-                                wood[0]=NULL;</span>
<span class='diff-del'>-                                ants--;</span>
<span class='diff-del'>-                                </span>
<span class='diff-del'>-                        }</span>
<span class='diff-del'>-                        </span>
<span class='diff-del'>-                        if((wood[woodlen-1]!=NULL)&amp;&amp;(wood[woodlen-1]-&gt;dir==1))//P</span>
<span class='diff-del'>-                        {</span>
<span class='diff-del'>-                                Rf=wood[woodlen-1];</span>
<span class='diff-del'>-                                wood[woodlen-1]=NULL;</span>
<span class='diff-del'>-                                ants--;</span>
<span class='diff-del'>-                        }</span>
                 
<span class='diff-del'>-                        for (int i=1 ; i&lt;woodlen-1; i++)</span>
<span class='diff-del'>-                        {</span>
<span class='diff-del'>-                        </span>
<span class='diff-del'>-</span>
<span class='diff-del'>-                                if(wood[i]!=NULL)</span>
<span class='diff-del'>-                                {</span>
<span class='diff-del'>-                                        if(wood[i+wood[i]-&gt;dir]!=NULL) //jetam</span>
<span class='diff-del'>-                                                wood[i]-&gt;dir*=-1;</span>
<span class='diff-del'>-                                        else</span>
<span class='diff-del'>-                                        {</span>
<span class='diff-del'>-                                            //printf(&quot;Dir %d&quot;, wood[i]-&gt;dir );</span>
<span class='diff-del'>-                                                wood[i+wood[i]-&gt;dir] = wood[i];</span>
<span class='diff-del'>-                                                wood[i]=NULL;</span>
<span class='diff-del'>-                                                i++;</span>
<span class='diff-del'>-                                        }</span>
<span class='diff-del'>-                                }</span>
<span class='diff-add'>+                for(i=0,j=0; i&lt;=len; i++) {</span>
<span class='diff-add'>+                        if(i!=j &amp;&amp; ant[i].dir) {</span>
<span class='diff-add'>+                                memcpy(ant+j,ant+i, sizeof(Ant));</span>
<span class='diff-add'>+                                j++;</span>
                         }
<span class='diff-del'>-                        </span>
<span class='diff-del'>-                        time++;</span>
<span class='diff-del'>-                        </span>
                 }
                 
<span class='diff-del'>-                if(Rf!=NULL &amp;&amp; Lf!=NULL)</span>
<span class='diff-del'>-                {</span>
<span class='diff-del'>-                        int a = Rf-&gt;start,b = Lf-&gt;start;</span>
<span class='diff-del'>-                        </span>
<span class='diff-del'>-                        if(Rf-&gt;start &gt; Lf-&gt;start)</span>
<span class='diff-del'>-                        {</span>
<span class='diff-del'>-                                a=Lf-&gt;start;</span>
<span class='diff-del'>-                                b=Rf-&gt;start;    </span>
<span class='diff-add'>+                for(i=0; i&lt;ants-1; i++) {</span>
<span class='diff-add'>+                        j=i;</span>
<span class='diff-add'>+                        while(ant[j].compare(ant+j+1) &amp;&amp; j&gt;0) {</span>
<span class='diff-add'>+                                if(j==0) {</span>
<span class='diff-add'>+                                        break;</span>
<span class='diff-add'>+                                }</span>
<span class='diff-add'>+                                j--;</span>
                         }
<span class='diff-del'>-                </span>
<span class='diff-del'>-                        printf(&quot;The last will fall down in %d seconds - started at %d and %d.\n&quot;, time,a,b);</span>
<span class='diff-del'>-                </span>
                 }
                 
<span class='diff-del'>-                else</span>
<span class='diff-del'>-                {</span>
<span class='diff-del'>-                        if(Rf!=NULL)</span>
<span class='diff-del'>-                        {</span>
<span class='diff-del'>-                                printf(&quot;The last will fall down in %d seconds - started at %d\n&quot;, time,Rf-&gt;start);</span>
<span class='diff-del'>-                        }</span>
<span class='diff-del'>-                        else</span>
<span class='diff-del'>-                        {</span>
<span class='diff-del'>-                                printf(&quot;The last will fall down in %d seconds - started at %d\n&quot;, time,Lf-&gt;start);</span>
<span class='diff-add'>+                maxTime = maxAnt2 = -1;</span>
<span class='diff-add'>+                for(i=0; i&lt;ants; i++) {</span>
<span class='diff-add'>+                        if(ant[i].time == maxTime) {</span>
<span class='diff-add'>+                                maxAnt2 = ant[i].id;</span>
<span class='diff-add'>+                        }else if (ant[i].time &gt; maxTime) {</span>
<span class='diff-add'>+                                maxAnt1 = ant[i].id;</span>
<span class='diff-add'>+                                maxAnt2 = -1;</span>
<span class='diff-add'>+                                maxTime = ant[i].time;</span>
                         }
                 }
<span class='diff-del'>-        </span>
<span class='diff-add'>+                if (maxAnt2 == -1) {</span>
<span class='diff-add'>+                        printf(</span>
<span class='diff-add'>+                                &quot;The last ant will fall down in %d seconds - started at %d.\n&quot;,</span>
<span class='diff-add'>+                                maxTime, maxAnt1);</span>
<span class='diff-add'>+                }else {</span>
<span class='diff-add'>+                        printf(</span>
<span class='diff-add'>+                                &quot;The last ant will fall down in %d seconds - started at %d and %d.\n&quot;,</span>
<span class='diff-add'>+                                maxTime, maxAnt1, maxAnt2);</span>
<span class='diff-add'>+                }</span>
         }
         return 0;
</pre>

</div></div>
</body>
</html>
