Submission #1304129


Source Code Expand

#include <iostream>
#include<sstream>
#include<vector>
#include<iterator>
#include<algorithm>
#include<queue>
using namespace std;

#define YES "YES"
#define NO "NO"

int main(void)
{
	int N;
	cin >> N;

	vector<int> NG(3, 0);
	for(auto it=NG.begin(); it!=NG.end(); it++)
		cin >> *it;

	if(find(NG.begin(), NG.end(), N) != NG.end())
	{
		cout << NO << endl;
		return 0;
	}

	queue<int> que1, que2;
	queue<int> *prev, *next;
	prev = &que1;
	next = &que2;

	// seed
	next->push(N);

	vector<bool> table(301, true);
	table[N] = false;
	for(auto it=NG.begin(); it!=NG.end(); it++)
		table[*it] = false;

	int cnt = 0;
	bool success = false;
	const int movement[3] = {-1, -2, -3};
	while(next->empty() != true)
	{
		cnt++;
		swap(prev, next);
		while(prev->empty() != true)
		{
			int pre = prev->front();
			prev->pop();

			for(auto it=begin(movement); it!=end(movement); it++)
			{
				int state = pre + *it;

				if(state < 0)
					continue;
				else if(table[state] == false)
					continue;

				if(state == 0)
				{
					success = true;
					*prev, queue<int>().swap(*prev);
					queue<int>().swap(*next);
					break;
				}

				next->push(state);
				table[state] = false;
			}
		}

		if(cnt == 100)
			break;
	}

	if(success == true && cnt <= 100)
		cout << YES << endl;
	else
		cout << NO << endl;

	return 0;
}

Submission Info

Submission Time
Task C - 123引き算
User callman
Language C++14 (GCC 5.4.1)
Score 100
Code Size 1401 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 31
Set Name Test Cases
All sample_01.txt, sample_02.txt, sample_03.txt, test_143_142_141_140.txt, test_1_1_2_3.txt, test_1_2_3_4.txt, test_200_200_2_3.txt, test_231_77_78_80.txt, test_235_124_126_125.txt, test_253_45_47_48.txt, test_297_223_224_225.txt, test_297_294_292_290.txt, test_297_297_30_83.txt, test_297_3_43_72.txt, test_298_125_123_124.txt, test_298_293_295_291.txt, test_298_298_4_8.txt, test_298_36_72_98.txt, test_298_55_3_43.txt, test_298_92_91_295.txt, test_299_200_151_65.txt, test_299_240_35_154.txt, test_299_300_299_298.txt, test_299_33_242_151.txt, test_299_56_57_58.txt, test_299_66_132_198.txt, test_300_271_44_68.txt, test_300_299_298_296.txt, test_300_30_99_183.txt, test_300_4_5_6.txt, test_84_34_64_36.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
test_143_142_141_140.txt AC 1 ms 256 KB
test_1_1_2_3.txt AC 1 ms 256 KB
test_1_2_3_4.txt AC 1 ms 256 KB
test_200_200_2_3.txt AC 1 ms 256 KB
test_231_77_78_80.txt AC 1 ms 256 KB
test_235_124_126_125.txt AC 1 ms 256 KB
test_253_45_47_48.txt AC 1 ms 256 KB
test_297_223_224_225.txt AC 1 ms 256 KB
test_297_294_292_290.txt AC 1 ms 256 KB
test_297_297_30_83.txt AC 1 ms 256 KB
test_297_3_43_72.txt AC 1 ms 256 KB
test_298_125_123_124.txt AC 1 ms 256 KB
test_298_293_295_291.txt AC 1 ms 256 KB
test_298_298_4_8.txt AC 1 ms 256 KB
test_298_36_72_98.txt AC 1 ms 256 KB
test_298_55_3_43.txt AC 1 ms 256 KB
test_298_92_91_295.txt AC 1 ms 256 KB
test_299_200_151_65.txt AC 1 ms 256 KB
test_299_240_35_154.txt AC 1 ms 256 KB
test_299_300_299_298.txt AC 1 ms 256 KB
test_299_33_242_151.txt AC 1 ms 256 KB
test_299_56_57_58.txt AC 1 ms 256 KB
test_299_66_132_198.txt AC 1 ms 256 KB
test_300_271_44_68.txt AC 1 ms 256 KB
test_300_299_298_296.txt AC 1 ms 256 KB
test_300_30_99_183.txt AC 1 ms 256 KB
test_300_4_5_6.txt AC 1 ms 256 KB
test_84_34_64_36.txt AC 1 ms 256 KB