Submission #6420994


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.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 = 0L;
	foreach( yi, y; ys )
	{
		if( y == 'o' ) i = yi;
	}
	foreach_reverse( xs; xss )
	{
		if(      xs[ i - 1 ] == '-' ) i -= 2;
		else if( xs[ i + 1 ] == '-' ) i += 2;
	}
	return ( i + 1 ) / 2;
}

Submission Info

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

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 34
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 AC 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 AC 1 ms 256 KB
01_rnd_05.txt AC 1 ms 256 KB
01_rnd_06.txt AC 1 ms 256 KB
01_rnd_07.txt AC 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 AC 1 ms 256 KB
01_rnd_11.txt AC 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 AC 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