Submission #365108


Source Code Expand

#include <stdio.h>

struct Point
{
	enum F_TYPE{
		FLOAR_SIRO,
		FLOAR_KURO,
	};
	F_TYPE type;
	int siro;
	int kuro;
	int maxX;
	
	Point()
	:siro(0)
	,kuro(0)
	,maxX(0)
	{}
};

int W, H, T;

int getIndex( int x, int y )
{
	return x + y*W;
}

// 愚直に・・・
void solve( Point* table, int x, int y, int A, int B )
{
	if( x < 0 || y < 0 || x >= W || y >= H ){
		return;
	}
	
	int index = getIndex(x, y);
	switch(table[index].type){
		case Point::FLOAR_SIRO:
		{
			++A;
			break;
		}
		case Point::FLOAR_KURO:
		{
			++B;
			break;
		}
	}
	
	int maxX = 0;
	if( B > 0 ) {
		maxX = (T - A) / B;
	}
	else{
		maxX = T;
	}
	
	if( maxX == 0 ){
		return;
	}
	
	if( maxX > table[index].maxX ||
	  ( maxX == table[index].maxX && A < table[index].siro ) )
	{
		table[index].siro = A;
		table[index].kuro = B;
		table[index].maxX = maxX;
		
		// 上下左右に進む
		solve(table, x+1, y, A, B);
		solve(table, x-1, y, A, B);
		solve(table, x, y+1, A, B);
		solve(table, x, y-1, A, B);
	}
	else{
		// 終了?
	}
}

int main()
{
	
	scanf("%d %d %d", &H, &W, &T);
	
	Point* floar = new Point[W*H];
	
	int startX, startY;
	int endX, endY;
	
	// read
	char* line = new char[W+1];
	for( int y = 0; y < H; ++y ){
		scanf("%s", line);
		
		for( int x = 0; x < W; ++x ){
			int index = getIndex(x,y);
			char c = line[x];
			switch (c) {
				case 'S':
				{
					startX = x;
					startY = y;
					floar[index].type = Point::FLOAR_SIRO;
					break;
				}
				case 'G':
				{
					endX = x;
					endY = y;
					floar[index].type = Point::FLOAR_SIRO;
					break;
				}
				case '.':
				{
					floar[index].type = Point::FLOAR_SIRO;
					break;
				}
				case '#':
				{
					floar[index].type = Point::FLOAR_KURO;
					break;
				}
			}
		}
	}
	
	solve( floar, startX, startY, -1, 0 );
	
	printf("%d\n",floar[getIndex(endX,endY)].maxX);
	
	delete[] line;
	return 0;
}

Submission Info

Submission Time
Task C - 壁抜け
User Neige
Language C++ (GCC 4.9.2)
Score 40
Code Size 1985 Byte
Status WA
Exec Time 28 ms
Memory 924 KiB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:82:31: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %d", &H, &W, &T);
                               ^
./Main.cpp:92:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   scanf("%s", line);
                    ^

Judge Result

Set Name Sample Subtask1 Subtask2 Subtask3
Score / Max Score 0 / 0 40 / 40 0 / 30 0 / 30
Status
AC × 3
AC × 16
AC × 40
WA × 2
AC × 66
WA × 2
Set Name Test Cases
Sample subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt
Subtask1 subtask0_sample_01.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt
Subtask2 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt
Subtask3 subtask0_sample_01.txt, subtask0_sample_02.txt, subtask0_sample_03.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt, subtask2_23.txt, subtask2_24.txt, subtask2_25.txt, subtask2_26.txt, subtask2_27.txt, subtask2_28.txt, subtask2_29.txt, subtask2_30.txt, subtask2_31.txt, subtask2_32.txt, subtask2_33.txt, subtask2_34.txt, subtask2_35.txt, subtask2_36.txt, subtask2_37.txt, subtask2_38.txt, subtask2_39.txt, subtask2_40.txt, subtask3_41.txt, subtask3_42.txt, subtask3_43.txt, subtask3_44.txt, subtask3_45.txt, subtask3_46.txt, subtask3_47.txt, subtask3_48.txt, subtask3_49.txt, subtask3_50.txt, subtask3_51.txt, subtask3_52.txt, subtask3_53.txt, subtask3_54.txt, subtask3_55.txt, subtask3_56.txt, subtask3_57.txt, subtask3_58.txt, subtask3_59.txt, subtask3_60.txt, subtask3_61.txt, subtask3_62.txt, subtask3_63.txt, subtask3_64.txt, subtask3_65.txt
Case Name Status Exec Time Memory
subtask0_sample_01.txt AC 25 ms 796 KiB
subtask0_sample_02.txt AC 25 ms 800 KiB
subtask0_sample_03.txt AC 23 ms 800 KiB
subtask1_01.txt AC 25 ms 800 KiB
subtask1_02.txt AC 23 ms 672 KiB
subtask1_03.txt AC 24 ms 804 KiB
subtask1_04.txt AC 26 ms 796 KiB
subtask1_05.txt AC 24 ms 672 KiB
subtask1_06.txt AC 24 ms 800 KiB
subtask1_07.txt AC 25 ms 800 KiB
subtask1_08.txt AC 25 ms 796 KiB
subtask1_09.txt AC 25 ms 800 KiB
subtask1_10.txt AC 25 ms 840 KiB
subtask1_11.txt AC 24 ms 796 KiB
subtask1_12.txt AC 25 ms 796 KiB
subtask1_13.txt AC 24 ms 800 KiB
subtask1_14.txt AC 24 ms 672 KiB
subtask1_15.txt AC 25 ms 796 KiB
subtask2_16.txt AC 25 ms 800 KiB
subtask2_17.txt AC 25 ms 800 KiB
subtask2_18.txt WA 23 ms 800 KiB
subtask2_19.txt AC 25 ms 800 KiB
subtask2_20.txt WA 25 ms 668 KiB
subtask2_21.txt AC 25 ms 796 KiB
subtask2_22.txt AC 25 ms 800 KiB
subtask2_23.txt AC 25 ms 736 KiB
subtask2_24.txt AC 25 ms 804 KiB
subtask2_25.txt AC 25 ms 732 KiB
subtask2_26.txt AC 25 ms 792 KiB
subtask2_27.txt AC 24 ms 800 KiB
subtask2_28.txt AC 24 ms 676 KiB
subtask2_29.txt AC 27 ms 796 KiB
subtask2_30.txt AC 23 ms 672 KiB
subtask2_31.txt AC 25 ms 672 KiB
subtask2_32.txt AC 24 ms 796 KiB
subtask2_33.txt AC 25 ms 676 KiB
subtask2_34.txt AC 23 ms 924 KiB
subtask2_35.txt AC 24 ms 800 KiB
subtask2_36.txt AC 25 ms 672 KiB
subtask2_37.txt AC 26 ms 800 KiB
subtask2_38.txt AC 26 ms 736 KiB
subtask2_39.txt AC 25 ms 800 KiB
subtask2_40.txt AC 25 ms 796 KiB
subtask3_41.txt AC 26 ms 800 KiB
subtask3_42.txt AC 24 ms 796 KiB
subtask3_43.txt AC 25 ms 712 KiB
subtask3_44.txt AC 26 ms 672 KiB
subtask3_45.txt AC 25 ms 800 KiB
subtask3_46.txt AC 25 ms 800 KiB
subtask3_47.txt AC 28 ms 672 KiB
subtask3_48.txt AC 25 ms 788 KiB
subtask3_49.txt AC 25 ms 920 KiB
subtask3_50.txt AC 25 ms 672 KiB
subtask3_51.txt AC 24 ms 800 KiB
subtask3_52.txt AC 24 ms 800 KiB
subtask3_53.txt AC 25 ms 672 KiB
subtask3_54.txt AC 25 ms 732 KiB
subtask3_55.txt AC 24 ms 796 KiB
subtask3_56.txt AC 24 ms 792 KiB
subtask3_57.txt AC 24 ms 796 KiB
subtask3_58.txt AC 25 ms 672 KiB
subtask3_59.txt AC 25 ms 920 KiB
subtask3_60.txt AC 25 ms 796 KiB
subtask3_61.txt AC 25 ms 732 KiB
subtask3_62.txt AC 25 ms 732 KiB
subtask3_63.txt AC 26 ms 800 KiB
subtask3_64.txt AC 24 ms 672 KiB
subtask3_65.txt AC 24 ms 800 KiB