38 lines
10 KiB
Plaintext
38 lines
10 KiB
Plaintext
-->
|
|
<span style="color: #004080;">sequence</span> <span style="color: #000000;">blocks</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">words</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">used</span>
|
|
|
|
<span style="color: #008080;">function</span> <span style="color: #000000;">ABC_Solve</span><span style="color: #0000FF;">(</span><span style="color: #004080;">sequence</span> <span style="color: #000000;">word</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">idx</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #004080;">integer</span> <span style="color: #000000;">ch</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
|
|
<span style="color: #008080;">if</span> <span style="color: #000000;">idx</span><span style="color: #0000FF;">></span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">then</span>
|
|
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
|
|
<span style="color: #000080;font-style:italic;">-- or: res = length(word)>0 -- (if "" -> false desired)</span>
|
|
<span style="color: #008080;">else</span>
|
|
<span style="color: #000000;">ch</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">word</span><span style="color: #0000FF;">[</span><span style="color: #000000;">idx</span><span style="color: #0000FF;">]</span>
|
|
<span style="color: #008080;">for</span> <span style="color: #000000;">k</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">blocks</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
|
<span style="color: #008080;">if</span> <span style="color: #000000;">used</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">]=</span><span style="color: #000000;">0</span>
|
|
<span style="color: #008080;">and</span> <span style="color: #7060A8;">find</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ch</span><span style="color: #0000FF;">,</span><span style="color: #000000;">blocks</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">])</span> <span style="color: #008080;">then</span>
|
|
<span style="color: #000000;">used</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span>
|
|
<span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">ABC_Solve</span><span style="color: #0000FF;">(</span><span style="color: #000000;">word</span><span style="color: #0000FF;">,</span><span style="color: #000000;">idx</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)</span>
|
|
<span style="color: #000000;">used</span><span style="color: #0000FF;">[</span><span style="color: #000000;">k</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
|
|
<span style="color: #008080;">if</span> <span style="color: #000000;">res</span> <span style="color: #008080;">then</span> <span style="color: #008080;">exit</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
|
<span style="color: #008080;">return</span> <span style="color: #000000;">res</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
|
|
|
<span style="color: #008080;">constant</span> <span style="color: #000000;">tests</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{{{</span><span style="color: #008000;">"BO"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"XK"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"DQ"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"CP"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"NA"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"GT"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"RE"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TG"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"QD"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"FS"</span><span style="color: #0000FF;">,</span>
|
|
<span style="color: #008000;">"JW"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"HU"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"VI"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"AN"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"OB"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"ER"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"FS"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"LY"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"PC"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"ZM"</span><span style="color: #0000FF;">},</span>
|
|
<span style="color: #0000FF;">{</span><span style="color: #008000;">""</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"A"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"BarK"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"BOOK"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TrEaT"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"COMMON"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"SQUAD"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"CONFUSE"</span><span style="color: #0000FF;">}},</span>
|
|
<span style="color: #0000FF;">{{</span><span style="color: #008000;">"US"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"TZ"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"AO"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"QA"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"AuTO"</span><span style="color: #0000FF;">}},</span>
|
|
<span style="color: #0000FF;">{{</span><span style="color: #008000;">"AB"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"AB"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"AC"</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"AC"</span><span style="color: #0000FF;">},{</span><span style="color: #008000;">"abba"</span><span style="color: #0000FF;">}}}</span>
|
|
|
|
<span style="color: #008080;">for</span> <span style="color: #000000;">i</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">tests</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
|
<span style="color: #0000FF;">{</span><span style="color: #000000;">blocks</span><span style="color: #0000FF;">,</span><span style="color: #000000;">words</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">tests</span><span style="color: #0000FF;">[</span><span style="color: #000000;">i</span><span style="color: #0000FF;">]</span>
|
|
<span style="color: #000000;">used</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">repeat</span><span style="color: #0000FF;">(</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">blocks</span><span style="color: #0000FF;">))</span>
|
|
<span style="color: #008080;">for</span> <span style="color: #000000;">j</span><span style="color: #0000FF;">=</span><span style="color: #000000;">1</span> <span style="color: #008080;">to</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">words</span><span style="color: #0000FF;">)</span> <span style="color: #008080;">do</span>
|
|
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s: %t\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">words</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">],</span><span style="color: #000000;">ABC_Solve</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">upper</span><span style="color: #0000FF;">(</span><span style="color: #000000;">words</span><span style="color: #0000FF;">[</span><span style="color: #000000;">j</span><span style="color: #0000FF;">]),</span><span style="color: #000000;">1</span><span style="color: #0000FF;">)})</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
|
<span style="color: #008080;">end</span> <span style="color: #008080;">for</span>
|
|
<!--
|