Submission #2124436


Source Code Expand


import std.stdio;
import std.algorithm;
import std.range;
import std.array;
import std.string;
import std.conv;

void main(){
	int[] nums = readln.chomp.map!((c) => [c].to!int).array;
	OP[][] opss = [[OP.PLUS,OP.PLUS,OP.PLUS], [OP.PLUS,OP.PLUS,OP.MINUS],[OP.PLUS,OP.MINUS,OP.PLUS],[OP.PLUS,OP.MINUS,OP.MINUS],[OP.MINUS,OP.MINUS,OP.MINUS],
				[OP.MINUS,OP.MINUS,OP.PLUS],[OP.MINUS,OP.PLUS,OP.PLUS],[OP.MINUS,OP.PLUS,OP.MINUS]];
	auto answers = opss.map!((ops) => calc(ops, nums)).array;
	int idx;
	foreach(int i, ans; answers){
		if(ans == 7){
			idx = i;
		}
	}
	auto answer_str = "";
	foreach(ix, OP op; opss[idx]){
		answer_str ~= nums[ix].to!string;
		switch(op){
			case OP.PLUS:{
				answer_str ~= "+";
				break;
			}
			case OP.MINUS:{
				answer_str ~= "-";
				break;
			}
			default:assert(0);
		}
	}
	answer_str ~= nums[$-1].to!string ~ "=7";
	writeln(answer_str);
}

enum OP{
	PLUS,MINUS
}

int calc(OP[] ops, int[] nums){
	if(!ops.empty){
		switch(ops[0]){
			case OP.PLUS:{
				if(nums.length > 2){
					nums = (nums[0] + nums[1]) ~ nums[2..$];
				}else{
					nums = [nums[0] + nums[1]];
				}
				return calc(ops[1..$], nums);
				
			}
			case OP.MINUS:{
				if(nums.length > 2){
					nums = (nums[0] - nums[1]) ~ nums[2..$];
				}else{
					nums = [nums[0] - nums[1]];
				}
				return calc(ops[1..$], nums);
				
			}
			default:assert(0);
		}
	}else{
		return nums[0];
	}
}

Submission Info

Submission Time
Task C - Train Ticket
User hinode_n
Language D (DMD64 v2.070.1)
Score 300
Code Size 1465 Byte
Status AC
Exec Time 1 ms
Memory 256 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 19
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
01.txt AC 1 ms 256 KiB
02.txt AC 1 ms 256 KiB
03.txt AC 1 ms 256 KiB
04.txt AC 1 ms 256 KiB
05.txt AC 1 ms 256 KiB
06.txt AC 1 ms 256 KiB
07.txt AC 1 ms 256 KiB
08.txt AC 1 ms 256 KiB
09.txt AC 1 ms 256 KiB
10.txt AC 1 ms 256 KiB
11.txt AC 1 ms 256 KiB
12.txt AC 1 ms 256 KiB
13.txt AC 1 ms 256 KiB
14.txt AC 1 ms 256 KiB
15.txt AC 1 ms 256 KiB
16.txt AC 1 ms 256 KiB
sample_01.txt AC 1 ms 256 KiB
sample_02.txt AC 1 ms 256 KiB
sample_03.txt AC 1 ms 256 KiB