提出 #309014


ソースコード 拡げる

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

class Data
{
public:
	struct Answer
	{
		int no;

		Answer()
		: no( 0 )
		{};

		bool check( int no )
		{
			return ( no == no );
		}
	};

	typedef std::vector< Answer >	Answers;

	static const int QCOUNT = 100;

public:
	Data()
	: count( 0 )
	, input()
	{
		memset( raw, 0, sizeof( raw ) );
	};

	~Data()
	{
	}

	int Check( int& high, int& low ) const
	{
		int h = 0;
		int l = count;

		for(int no=1; no<=4; no++ )
		{
			int ac_count = GetAcceptCount( no );
			if( ac_count > h )
			{
				h = ac_count;
			}
			if( ac_count < l )
			{
				l = ac_count;
			}
		}

		high = h;
		low = l;

		return 0;
	}

private:
	int GetAcceptCount( int no ) const
	{
		int ac_count = 0;

		for( size_t i=0; i<input.size(); i++ )
		{
			if( no == input[ i ].no )
			{
				ac_count++;
			}
		}

		return ac_count;
	}

public:
	int		count;
	char	raw[ QCOUNT+1 ];
	Answers	input;
};

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

		scanf( "%s", data.raw );
		data.raw[ data.count ] = '\0';

		for( int i=0; i< data.count; i++ )
		{
			char c = data.raw[ i ];
			int no = -1;
			switch( c )
			{
				case '1':	no = 1;	break;
				case '2':	no = 2;	break;
				case '3':	no = 3;	break;
				case '4':	no = 4;	break;
				default:	no = -1;	break;
			}

			Data::Answer answer;
			answer.no = no;
			data.input.push_back( answer );
		}

		return ret;
	}
};

class DataPutter
{
public:
	static int Put( const Data& data )
	{
		int high = 0;
		int low = 0;
		data.Check( high, low );

		printf( "%d %d\n", high, low );

		return 0;
	}
};


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

	return 0;

}

提出情報

提出日時
問題 A - センター採点
ユーザ senri0123
言語 C++ (G++ 4.6.4)
得点 100
コード長 1916 Byte
結果 AC
実行時間 27 ms
メモリ 924 KiB

コンパイルエラー

./Main.cpp: In static member function ‘static int DataGetter::Get(Data&)’:
./Main.cpp:93:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 30
セット名 テストケース
All 00_sample1.txt, 00_sample2.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_all_1.txt, 02_all_2.txt, 02_all_3.txt, 02_all_4.txt, 03_mini_1.txt, 03_mini_2.txt, 03_mini_3.txt, 03_mini_4.txt
ケース名 結果 実行時間 メモリ
00_sample1.txt AC 25 ms 812 KiB
00_sample2.txt AC 27 ms 764 KiB
01_rnd_00.txt AC 24 ms 872 KiB
01_rnd_01.txt AC 23 ms 748 KiB
01_rnd_02.txt AC 24 ms 860 KiB
01_rnd_03.txt AC 26 ms 856 KiB
01_rnd_04.txt AC 24 ms 924 KiB
01_rnd_05.txt AC 24 ms 812 KiB
01_rnd_06.txt AC 24 ms 864 KiB
01_rnd_07.txt AC 24 ms 864 KiB
01_rnd_08.txt AC 23 ms 800 KiB
01_rnd_09.txt AC 24 ms 800 KiB
01_rnd_10.txt AC 23 ms 796 KiB
01_rnd_11.txt AC 25 ms 796 KiB
01_rnd_12.txt AC 23 ms 804 KiB
01_rnd_13.txt AC 24 ms 800 KiB
01_rnd_14.txt AC 25 ms 804 KiB
01_rnd_15.txt AC 25 ms 756 KiB
01_rnd_16.txt AC 23 ms 752 KiB
01_rnd_17.txt AC 23 ms 800 KiB
01_rnd_18.txt AC 25 ms 796 KiB
01_rnd_19.txt AC 24 ms 800 KiB
02_all_1.txt AC 25 ms 796 KiB
02_all_2.txt AC 22 ms 800 KiB
02_all_3.txt AC 24 ms 800 KiB
02_all_4.txt AC 24 ms 800 KiB
03_mini_1.txt AC 26 ms 772 KiB
03_mini_2.txt AC 24 ms 800 KiB
03_mini_3.txt AC 25 ms 796 KiB
03_mini_4.txt AC 24 ms 800 KiB