Submission #309015


Source Code Expand

#include <stdio.h>
#include <string.h>
#include <vector>
#include <set>

class Data
{
public:
	Data()
	: from( 0 )
	, to( 0 )
	, current( 0 )
	, count( 0 )
	{
	};

	~Data()
	{
	}

	bool Operation()
	{
		if( current == to )
		{
			return true;	//	finish
		}

		#define	CHANGE_TEMPER_MAX	( 6 )
		int change_temper[ CHANGE_TEMPER_MAX ] =
		{
			1,
			5,
			10,
			-1,
			-5,
			-10,
		};

		int nearest_diff = 100;	//temper 0 - 40
		int nearest_temper = current;

		for( int i=0; i<CHANGE_TEMPER_MAX; i++ )
		{
			int change = change_temper[ i ];
			int before = current;
			int after = before + change;

			int diff = to - after;
			if( diff < 0 )
			{
				diff *= -1;
			}

			if( diff < nearest_diff )
			{
				nearest_diff = diff;
				nearest_temper = after;
			}
		}

		current = nearest_temper;
		count++;

		return false;
	}

	bool Debug()
	{
		printf( " [%d] %d\n", count, current );
	}

public:
	int	from;
	int to;
	int current;
	int count;
};

class DataGetter
{
public:
	static int Get( Data& data )
	{
		data = Data();
		int ret = scanf( "%d %d", &data.from, &data.to );
		data.current = data.from;

		return ret;
	}
};

class DataPutter
{
public:
	static int Put( const Data& data )
	{

		printf( "%d\n", data.count );

		return 0;
	}
};


int main(int argc, char** argv)
{
	Data data;
	DataGetter::Get( data );

	while( !data.Operation() )
	{
		//data.Debug();
	};

	DataPutter::Put( data );

	return 0;

}

Submission Info

Submission Time
Task B - リモコン
User senri0123
Language C++ (G++ 4.6.4)
Score 100
Code Size 1539 Byte
Status AC
Exec Time 35 ms
Memory 1028 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 35
Set Name Test Cases
All 00_maxdiff.txt, 00_maxret.txt, 00_sample1.txt, 00_sample2.txt, 00_sample3.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, 01_rnd_20.txt, 01_rnd_21.txt, 01_rnd_22.txt, 01_rnd_23.txt, 01_rnd_24.txt, 01_rnd_25.txt, 01_rnd_26.txt, 01_rnd_27.txt, 01_rnd_28.txt, 01_rnd_29.txt
Case Name Status Exec Time Memory
00_maxdiff.txt AC 32 ms 952 KiB
00_maxret.txt AC 27 ms 1012 KiB
00_sample1.txt AC 27 ms 952 KiB
00_sample2.txt AC 26 ms 956 KiB
00_sample3.txt AC 27 ms 952 KiB
01_rnd_00.txt AC 26 ms 948 KiB
01_rnd_01.txt AC 26 ms 948 KiB
01_rnd_02.txt AC 24 ms 952 KiB
01_rnd_03.txt AC 25 ms 952 KiB
01_rnd_04.txt AC 29 ms 944 KiB
01_rnd_05.txt AC 25 ms 948 KiB
01_rnd_06.txt AC 25 ms 952 KiB
01_rnd_07.txt AC 26 ms 956 KiB
01_rnd_08.txt AC 25 ms 952 KiB
01_rnd_09.txt AC 26 ms 948 KiB
01_rnd_10.txt AC 25 ms 952 KiB
01_rnd_11.txt AC 35 ms 948 KiB
01_rnd_12.txt AC 26 ms 952 KiB
01_rnd_13.txt AC 28 ms 952 KiB
01_rnd_14.txt AC 27 ms 1004 KiB
01_rnd_15.txt AC 26 ms 1028 KiB
01_rnd_16.txt AC 27 ms 952 KiB
01_rnd_17.txt AC 26 ms 952 KiB
01_rnd_18.txt AC 27 ms 944 KiB
01_rnd_19.txt AC 30 ms 952 KiB
01_rnd_20.txt AC 27 ms 952 KiB
01_rnd_21.txt AC 28 ms 952 KiB
01_rnd_22.txt AC 31 ms 944 KiB
01_rnd_23.txt AC 28 ms 948 KiB
01_rnd_24.txt AC 28 ms 948 KiB
01_rnd_25.txt AC 27 ms 944 KiB
01_rnd_26.txt AC 27 ms 952 KiB
01_rnd_27.txt AC 28 ms 940 KiB
01_rnd_28.txt AC 28 ms 1024 KiB
01_rnd_29.txt AC 25 ms 948 KiB