<?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: s1055</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 s1055</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>main.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;">#define PROJECT 4</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;iostream&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;vector&gt;</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: #339900;">#include &lt;queue&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;limits&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: 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;">typedef</span> <span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">long</span> <span style="color: #0000ff;">long</span> ull<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;">using</span> <span style="color: #0000ff;">namespace</span> std<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: #339900;">#if PROJECT == 1</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><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> 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;">    <span style="color: #0000ff;">int</span> l, a<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;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> l <span style="color: #000080;">&gt;&gt;</span> a<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;">int</span> pos<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;">char</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: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> pos <span style="color: #000080;">&gt;&gt;</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;">&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: #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: 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;"><span style="color: #339900;">#elif PROJECT == 2</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;">#elif PROJECT == 3</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;">#elif PROJECT == 4</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;">&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;">    <span style="color: #0000ff;">int</span> r, s, gr, gs, lr, ls<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;">int</span> grid<span style="color: #008000;">&#91;</span><span style="color: #0000dd;">105</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span><span style="color: #0000dd;">105</span><span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span> <span style="color: #666666;">//inicializovat este!</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;">    vector<span style="color: #000080;">&lt;</span> pair<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> <span style="color: #000080;">&gt;</span> moves<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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">2</span><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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">1</span>,<span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span><span style="color: #0000dd;">1</span>,<span style="color: #0000dd;">2</span><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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span><span style="color: #0000dd;">1</span>,<span style="color: #000040;">-</span><span style="color: #0000dd;">2</span><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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span>,<span style="color: #0000dd;">1</span><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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #0000dd;">2</span>,<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span><span style="color: #0000dd;">2</span>,<span style="color: #0000dd;">1</span><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;">    moves.<span style="color: #007788;">push_back</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span><span style="color: #000040;">-</span><span style="color: #0000dd;">2</span>,<span style="color: #000040;">-</span><span style="color: #0000dd;">1</span><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;">&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;">    queue<span style="color: #000080;">&lt;</span> pair<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> <span style="color: #000080;">&gt;</span> todo<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;">while</span><span style="color: #008000;">&#40;</span><span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> r <span style="color: #000080;">&gt;&gt;</span> s <span style="color: #000080;">&gt;&gt;</span> gr <span style="color: #000080;">&gt;&gt;</span> gs <span style="color: #000080;">&gt;&gt;</span> lr <span style="color: #000080;">&gt;&gt;</span> ls<span style="color: #008000;">&#41;</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;">&#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;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</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><span style="color: #0000dd;">103</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</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;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> j<span style="color: #000080;">=</span><span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> j<span style="color: #000080;">&lt;</span><span style="color: #0000dd;">103</span><span style="color: #008080;">;</span> j<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</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;">                grid<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>j<span style="color: #008000;">&#93;</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;">&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;">        pair<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> leaf <span style="color: #000080;">=</span> make_pair<span style="color: #008000;">&#40;</span>lr,ls<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;">&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;">        todo.<span style="color: #007788;">push</span><span style="color: #008000;">&#40;</span>make_pair<span style="color: #008000;">&#40;</span>gr,gs<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;">        grid<span style="color: #008000;">&#91;</span>gr<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>gs<span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span><span style="color: #0000dd;">0</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;">while</span><span style="color: #008000;">&#40;</span><span style="color: #000040;">!</span>todo.<span style="color: #007788;">empty</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</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;">&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;">            pair<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> current <span style="color: #000080;">=</span> todo.<span style="color: #007788;">front</span><span style="color: #008000;">&#40;</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;">            todo.<span style="color: #007788;">pop</span><span style="color: #008000;">&#40;</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;">for</span><span style="color: #008000;">&#40;</span>vector<span style="color: #000080;">&lt;</span> pair<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> <span style="color: #000080;">&gt;</span><span style="color: #008080;">::</span><span style="color: #007788;">iterator</span> i <span style="color: #000080;">=</span> moves.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span> i<span style="color: #000040;">!</span><span style="color: #000080;">=</span>moves.<span style="color: #007788;">end</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span>i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</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;">&#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;">                pair<span style="color: #000080;">&lt;</span><span style="color: #0000ff;">int</span>,<span style="color: #0000ff;">int</span><span style="color: #000080;">&gt;</span> next <span style="color: #000080;">=</span> make_pair<span style="color: #008000;">&#40;</span>current.<span style="color: #007788;">first</span><span style="color: #000040;">+</span>i<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>first,current.<span style="color: #007788;">second</span><span style="color: #000040;">+</span>i<span style="color: #000040;">-</span><span style="color: #000080;">&gt;</span>second<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;">if</span><span style="color: #008000;">&#40;</span>next.<span style="color: #007788;">first</span> <span style="color: #000080;">&gt;=</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">&amp;&amp;</span> next.<span style="color: #007788;">first</span> <span style="color: #000080;">&lt;=</span> r <span style="color: #000040;">&amp;&amp;</span> next.<span style="color: #007788;">second</span> <span style="color: #000080;">&gt;=</span> <span style="color: #0000dd;">1</span> <span style="color: #000040;">&amp;&amp;</span> next.<span style="color: #007788;">second</span> <span style="color: #000080;">&lt;=</span> s<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>grid<span style="color: #008000;">&#91;</span>next.<span style="color: #007788;">first</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>next.<span style="color: #007788;">second</span><span style="color: #008000;">&#93;</span><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;">                        grid<span style="color: #008000;">&#91;</span>next.<span style="color: #007788;">first</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>next.<span style="color: #007788;">second</span><span style="color: #008000;">&#93;</span><span style="color: #000080;">=</span>grid<span style="color: #008000;">&#91;</span>current.<span style="color: #007788;">first</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>current.<span style="color: #007788;">second</span><span style="color: #008000;">&#93;</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;">if</span><span style="color: #008000;">&#40;</span>next<span style="color: #000080;">==</span>leaf<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;">cout</span> <span style="color: #000080;">&lt;&lt;</span> grid<span style="color: #008000;">&#91;</span>next.<span style="color: #007788;">first</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>next.<span style="color: #007788;">second</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">&lt;&lt;</span> endl<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;">                        todo.<span style="color: #007788;">push</span><span style="color: #008000;">&#40;</span>next<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;">                <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: #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: 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;">if</span><span style="color: #008000;">&#40;</span>grid<span style="color: #008000;">&#91;</span>leaf.<span style="color: #007788;">first</span><span style="color: #008000;">&#93;</span><span style="color: #008000;">&#91;</span>leaf.<span style="color: #007788;">second</span><span style="color: #008000;">&#93;</span><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: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> <span style="color: #FF0000;">&quot;impossible&quot;</span> <span style="color: #000080;">&lt;&lt;</span> endl<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: #666666;">//1==1;</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;">&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: #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: #339900;">#elif PROJECT == 5</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: #339900;">#elif PROJECT == 6</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;"><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;">&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;">unsigned</span> <span style="color: #0000ff;">long</span> <span style="color: #0000ff;">long</span> m, p, l, e ,r, s, n<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;">while</span> <span style="color: #008000;">&#40;</span><span style="color: #0000dd;">cin</span> <span style="color: #000080;">&gt;&gt;</span> m <span style="color: #000080;">&gt;&gt;</span> p <span style="color: #000080;">&gt;&gt;</span> l <span style="color: #000080;">&gt;&gt;</span> e <span style="color: #000080;">&gt;&gt;</span> r <span style="color: #000080;">&gt;&gt;</span> s <span style="color: #000080;">&gt;&gt;</span> n<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;">for</span> <span style="color: #008000;">&#40;</span>ull i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> n<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;">            ull m1, p1, l1<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;">            m1 <span style="color: #000080;">=</span> p <span style="color: #000040;">/</span> s<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;">            p1 <span style="color: #000080;">=</span> l <span style="color: #000040;">/</span> r<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;">            l1 <span style="color: #000080;">=</span> m <span style="color: #000040;">*</span> e<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;">            m <span style="color: #000080;">=</span> m1<span style="color: #008080;">;</span> p <span style="color: #000080;">=</span> p1<span style="color: #008080;">;</span> l <span style="color: #000080;">=</span> l1<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: #0000dd;">cout</span> <span style="color: #000080;">&lt;&lt;</span> m <span style="color: #000080;">&lt;&lt;</span> endl<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;">return</span> <span style="color: #0000dd;">0</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;">&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;">#endif</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></ol></pre></div></div><h2><a name="diff"></a>Diff to submission <a href="985">s985</a></h2>
<div class="tabber"><div class="tabbertab"><h2 class="filename"><a name="diff"></a>main.cpp</h2>

<pre class="output_text"><span class='diff-del'>--- c4.s985.cteam098.grasshop.cpp.0.main.cpp</span>
<span class='diff-add'>+++ c4.s1055.cteam098.grasshop.cpp.0.main.cpp</span>
@@ -28,94 +28,59 @@
 #elif PROJECT == 4
 
<span class='diff-del'>-struct task {</span>
<span class='diff-del'>-    int x, y;</span>
<span class='diff-del'>-    task(int _x, int _y) : x(_x), y(_y) {}</span>
<span class='diff-del'>-};</span>
 
<span class='diff-del'>-int grid[100][100];</span>
<span class='diff-add'>+int main() {</span>
<span class='diff-add'>+    int r, s, gr, gs, lr, ls;</span>
 
<span class='diff-del'>-const int INF = /* numeric_limits&lt;int&gt;::max() - 1;*/ 100000;</span>
<span class='diff-add'>+    int grid[105][105]; //inicializovat este!</span>
 
<span class='diff-del'>-int r, c, gr, gc, lr, lc;</span>
<span class='diff-del'>-void dump() {</span>
<span class='diff-del'>-    for (int i = 0; i &lt; r; i++) {</span>
<span class='diff-del'>-        for (int j = 0; j &lt; c; j++ ) {</span>
<span class='diff-del'>-            cout &lt;&lt; '\t' &lt;&lt; (grid[i][j]);</span>
<span class='diff-del'>-        }</span>
<span class='diff-del'>-        endl(cout);</span>
<span class='diff-del'>-    }</span>
<span class='diff-del'>-}</span>
<span class='diff-add'>+    vector&lt; pair&lt;int,int&gt; &gt; moves;</span>
<span class='diff-add'>+    moves.push_back(make_pair(1,2));</span>
<span class='diff-add'>+    moves.push_back(make_pair(1,-2));</span>
<span class='diff-add'>+    moves.push_back(make_pair(-1,2));</span>
<span class='diff-add'>+    moves.push_back(make_pair(-1,-2));</span>
<span class='diff-add'>+    moves.push_back(make_pair(2,1));</span>
<span class='diff-add'>+    moves.push_back(make_pair(2,-1));</span>
<span class='diff-add'>+    moves.push_back(make_pair(-2,1));</span>
<span class='diff-add'>+    moves.push_back(make_pair(-2,-1));</span>
 
<span class='diff-del'>-int main() {</span>
<span class='diff-del'>-    while (cin &gt;&gt; r &gt;&gt; c &gt;&gt; gr &gt;&gt; gc &gt;&gt; lr &gt;&gt; lc) {</span>
<span class='diff-del'>-        //endl(cout);</span>
<span class='diff-del'>-        //cout &lt;&lt; &quot;#############################################################&quot; &lt;&lt; endl &lt;&lt; endl;</span>
<span class='diff-del'>-        for (int i = 0; i &lt; r; i++ ) {</span>
<span class='diff-del'>-            for (int j = 0; j &lt; c; j++) {</span>
<span class='diff-del'>-                grid[i][j] = INF;</span>
<span class='diff-del'>-            }</span>
<span class='diff-del'>-        }</span>
<span class='diff-del'>-        gr--, gc--, lr--, lc--;</span>
<span class='diff-del'>-        bool flag = false;</span>
<span class='diff-del'>-        grid[gr][gc] = 0;</span>
<span class='diff-del'>-        queue&lt;task&gt; todo;</span>
<span class='diff-del'>-        todo.push(task(gr, gc));</span>
<span class='diff-add'>+    queue&lt; pair&lt;int,int&gt; &gt; todo;</span>
 
<span class='diff-del'>-        while (!todo.empty() || flag) {</span>
<span class='diff-del'>-            task current = todo.front(); todo.pop();</span>
<span class='diff-del'>-           //cout &lt;&lt; &quot;************************&quot; &lt;&lt; endl;</span>
<span class='diff-del'>-           // dump();</span>
<span class='diff-add'>+    while(cin &gt;&gt; r &gt;&gt; s &gt;&gt; gr &gt;&gt; gs &gt;&gt; lr &gt;&gt; ls)</span>
<span class='diff-add'>+    {</span>
<span class='diff-add'>+        for (int i=0; i&lt;103; i++)</span>
<span class='diff-add'>+            for (int j=0; j&lt;103; j++)</span>
<span class='diff-add'>+                grid[i][j]=-1;</span>
 
<span class='diff-del'>-            for (int i = -2; i &lt;= 2; i++) {</span>
<span class='diff-del'>-                if (i == 0 || current.x + i &lt; 0 || current.x + i &gt; c - 1) continue;</span>
<span class='diff-add'>+        pair&lt;int,int&gt; leaf = make_pair(lr,ls);</span>
 
<span class='diff-del'>-                if (abs(i) == 1) {</span>
<span class='diff-del'>-                    for (int j = -2; j &lt;= 2; j += 4) {</span>
<span class='diff-del'>-                        if (current.y + j &lt; 0 || current.y + j &gt; r -  1) continue;</span>
<span class='diff-add'>+        todo.push(make_pair(gr,gs));</span>
<span class='diff-add'>+        grid[gr][gs]=0;</span>
 
<span class='diff-del'>-                        int tx = current.x + i;</span>
<span class='diff-del'>-                        int ty = current.y + j;</span>
<span class='diff-del'>-                        if (grid[tx][ty] == INF) {</span>
<span class='diff-del'>-                            grid[tx][ty] = grid[current.x][current.y] + 1;</span>
<span class='diff-del'>-                            todo.push(task(tx, ty));</span>
<span class='diff-del'>-                            if ((lr == tx) &amp; (lc == ty))</span>
<span class='diff-del'>-                                flag   == true;</span>
<span class='diff-del'>-                        }</span>
<span class='diff-add'>+        while(!todo.empty()){</span>
 
<span class='diff-del'>-                    }</span>
<span class='diff-del'>-                } else if (abs(i) == 2) {</span>
<span class='diff-add'>+            pair&lt;int,int&gt; current = todo.front();</span>
<span class='diff-add'>+            todo.pop();</span>
 
<span class='diff-del'>-                    for (int j = -1; j &lt;= 1; j += 2) {</span>
<span class='diff-del'>-                        if (current.y + j &lt; 0 || current.y + j &gt; r -  1) continue;</span>
<span class='diff-add'>+            for(vector&lt; pair&lt;int,int&gt; &gt;::iterator i = moves.begin(); i!=moves.end();i++)</span>
<span class='diff-add'>+            {</span>
<span class='diff-add'>+                pair&lt;int,int&gt; next = make_pair(current.first+i-&gt;first,current.second+i-&gt;second);</span>
 
<span class='diff-del'>-                        int tx = current.x + i;</span>
<span class='diff-del'>-                        int ty = current.y + j;</span>
<span class='diff-del'>-                        if (grid[tx][ty] == INF) {</span>
<span class='diff-del'>-                            grid[tx][ty] = grid[current.x][current.y] + 1;</span>
<span class='diff-del'>-                            todo.push(task(tx, ty));</span>
<span class='diff-del'>-                            if ((lr == tx) &amp; (lc == ty))</span>
<span class='diff-del'>-                               flag == true;</span>
<span class='diff-add'>+                if(next.first &gt;= 1 &amp;&amp; next.first &lt;= r &amp;&amp; next.second &gt;= 1 &amp;&amp; next.second &lt;= s){</span>
<span class='diff-add'>+                    if(grid[next.first][next.second]==-1) {</span>
<span class='diff-add'>+                        grid[next.first][next.second]=grid[current.first][current.second]+1;</span>
<span class='diff-add'>+                        if(next==leaf) {</span>
<span class='diff-add'>+                            cout &lt;&lt; grid[next.first][next.second] &lt;&lt; endl;</span>
                         }
<span class='diff-add'>+                        todo.push(next);</span>
                     }
<span class='diff-del'>-                }else {</span>
<span class='diff-del'>-                    //cerr &lt;&lt; &quot;dafuq?&quot; &lt;&lt; endl;</span>
                 }
             }
<span class='diff-add'>+            }</span>
 
<span class='diff-del'>-</span>
<span class='diff-del'>-        }</span>
<span class='diff-del'>-</span>
<span class='diff-del'>-        //  cout &lt;&lt; &quot;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&quot; &lt;&lt; endl;</span>
<span class='diff-del'>-</span>
<span class='diff-del'>-        if (grid[lr][lc] == INF) {</span>
<span class='diff-del'>-            cout &lt;&lt; &quot;impossible&quot; &lt;&lt; endl;</span>
<span class='diff-del'>-</span>
<span class='diff-del'>-        } else {</span>
<span class='diff-del'>-            cout &lt;&lt; grid[lr][lc] &lt;&lt; endl;</span>
<span class='diff-del'>-        }</span>
<span class='diff-del'>-</span>
<span class='diff-add'>+        if(grid[leaf.first][leaf.second]==-1) cout &lt;&lt; &quot;impossible&quot; &lt;&lt; endl;</span>
<span class='diff-add'>+        //1==1;</span>
     }
 
<span class='diff-del'>-    return 0;</span>
<span class='diff-add'>+</span>
 }
 
</pre>

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