Submission #6420959


Source Code Expand

unittest
{

assert( q"INPUT
3 2
| |-|
|-| |
o   
INPUT".split( '\n' ).parse.expand.solve == 3 );

assert( q"INPUT
10 2
| |-| |-| |-| |-| |
|-| |-| |-| |-| |-|
            o      
INPUT".split( '\n' ).parse.expand.solve == 9 );

assert( q"INPUT
1 5
|
|
|
|
|
o
INPUT".split( '\n' ).parse.expand.solve == 1 );

assert( q"INPUT
4 2
| | | |
| | | |
      o
INPUT".split( '\n' ).parse.expand.solve == 4 );

assert( q"INPUT
9 8
| | | | | | | | |
|-| | |-| | |-| |
| | |-| | |-| | |
| |-| | | | | |-|
| | | |-| | | |-|
| | |-| |-| | | |
|-| | |-| | |-| |
| | | | | |-| | |
            o    
INPUT".split( '\n' ).parse.expand.solve == 3 );

}



import std.algorithm;
import std.conv;
import std.range;
import std.stdio;
import std.typecons;

void main()
{
	stdin.byLineCopy.parse.expand.solve.writeln;
}

auto parse( Range )( Range input )
if( isInputRange!Range && is( ElementType!Range == string ) )
{
	auto nl = input.front.split.to!( long[] );
	auto xss = new dchar[][]( nl[ 1 ], nl[ 0 ] * 2 - 1 );
	foreach( ref xs; xss )
	{
		input.popFront;
		xs = input.front.to!( dchar[] );
	}
	input.popFront;
	auto ys = input.front.to!( dchar[] );
	return tuple( xss, ys );
}

auto solve( dchar[][] xss, dchar[] ys )
{
	auto i = ( ys.length - ys.find( 'o' ).length ).signed;
	foreach_reverse( xs; xss )
	{
		if(      0 < i - 2         && xs[ i - 1 ] == '-' ) i -= 2;
		else if( i + 2 < xs.length && xs[ i + 1 ] == '-' ) i += 2;
	}
	return i / 2 + 1;
}

Submission Info

Submission Time
Task B - あみだくじ
User KouMikage
Language D (DMD64 v2.070.1)
Score 0
Code Size 1526 Byte
Status WA
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 0 / 100
Status
AC × 27
WA × 7
Set Name Test Cases
All 00_min.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 00_sample_04.txt, 00_sample_05.txt, 01_rnd_00.txt, 01_rnd_01.txt, 01_rnd_02.txt, 01_rnd_03.txt, 01_rnd_04.txt, 01_rnd_05.txt, 01_rnd_06.txt, 01_rnd_07.txt, 01_rnd_08.txt, 01_rnd_09.txt, 01_rnd_10.txt, 01_rnd_11.txt, 01_rnd_12.txt, 01_rnd_13.txt, 01_rnd_14.txt, 01_rnd_15.txt, 01_rnd_16.txt, 01_rnd_17.txt, 01_rnd_18.txt, 01_rnd_19.txt, 02_maxrnd_00.txt, 02_maxrnd_01.txt, 02_maxrnd_02.txt, 02_maxrnd_03.txt, 02_maxrnd_04.txt, 03_empty_00.txt, 03_empty_01.txt, 03_empty_02.txt
Case Name Status Exec Time Memory
00_min.txt AC 1 ms 256 KB
00_sample_01.txt AC 1 ms 256 KB
00_sample_02.txt AC 1 ms 256 KB
00_sample_03.txt AC 1 ms 256 KB
00_sample_04.txt AC 1 ms 256 KB
00_sample_05.txt AC 1 ms 256 KB
01_rnd_00.txt AC 1 ms 256 KB
01_rnd_01.txt WA 1 ms 256 KB
01_rnd_02.txt AC 1 ms 256 KB
01_rnd_03.txt AC 1 ms 256 KB
01_rnd_04.txt WA 1 ms 256 KB
01_rnd_05.txt WA 1 ms 256 KB
01_rnd_06.txt AC 1 ms 256 KB
01_rnd_07.txt WA 1 ms 256 KB
01_rnd_08.txt AC 1 ms 256 KB
01_rnd_09.txt AC 1 ms 256 KB
01_rnd_10.txt WA 1 ms 256 KB
01_rnd_11.txt WA 1 ms 256 KB
01_rnd_12.txt AC 1 ms 256 KB
01_rnd_13.txt AC 1 ms 256 KB
01_rnd_14.txt AC 1 ms 256 KB
01_rnd_15.txt AC 1 ms 256 KB
01_rnd_16.txt AC 1 ms 256 KB
01_rnd_17.txt AC 1 ms 256 KB
01_rnd_18.txt AC 1 ms 256 KB
01_rnd_19.txt AC 1 ms 256 KB
02_maxrnd_00.txt WA 1 ms 256 KB
02_maxrnd_01.txt AC 1 ms 256 KB
02_maxrnd_02.txt AC 1 ms 256 KB
02_maxrnd_03.txt AC 1 ms 256 KB
02_maxrnd_04.txt AC 1 ms 256 KB
03_empty_00.txt AC 1 ms 256 KB
03_empty_01.txt AC 1 ms 256 KB
03_empty_02.txt AC 1 ms 256 KB