結果

問題 No.276 連続する整数の和(1)
ユーザー ClarkClark
提出日時 2016-08-19 06:02:48
言語 D
(dmd 2.106.1)
結果
AC  
実行時間 1 ms / 1,000 ms
コード長 2,429 bytes
コンパイル時間 706 ms
コンパイル使用メモリ 103,936 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-06-12 03:40:35
合計ジャッジ時間 1,283 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 1 ms
5,248 KB
testcase_01 AC 1 ms
5,376 KB
testcase_02 AC 1 ms
5,376 KB
testcase_03 AC 1 ms
5,376 KB
testcase_04 AC 1 ms
5,376 KB
testcase_05 AC 1 ms
5,376 KB
testcase_06 AC 1 ms
5,376 KB
testcase_07 AC 1 ms
5,376 KB
testcase_08 AC 1 ms
5,376 KB
testcase_09 AC 1 ms
5,376 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

import std.stdio;

void main(){
	auto io = new IO();
	
	auto N = io.rect!size_t()[0][0];
	
	if( N%2==0 ){
		writeln(N/2);
	}else{
		writeln(N);
	}

	return;
}

import std.stdio,std.conv,std.string;
import std.algorithm,std.array,std.math;

class IO
{
	T[] line( T = size_t , string token = " " )( size_t m = 1 ){
		T[] arr = [];
		foreach( i ; 0..m ){
			arr ~= this.read!T();
		}
		return arr;
	}
	T[][] rect( T = size_t , string token = " " )( size_t m = 1 ){
		T[][] arr = new T[][](m);
		foreach( i ; 0..m ){
			arr[i] = this.read!T(token);
		}
		return arr;
	}
	private T[] read( T = size_t )( string token = " " ){
		T[] arr;
		foreach( elm ; readln().chomp().split(token) ){
			arr ~= elm.to!T();
		}
		return arr;
	}
}

// T[] -> T[]
pure T[] fill( T )( T[] args , in T filling ){
	foreach( ref arg ; args ){
		arg = filling;
	}
	return args;
}
T[] map( T )( T[] args , T function(T) f ){
	foreach( ref arg ; args ){
		arg = f(arg);
	}
	return args;
}
unittest{
	assert( [true,false,true,false].fill(true) == [true,true,true,true] );
	assert( [1,-2,3,-4].map!int(x=>x*2) == [2,-4,6,-8] );
}
// T[] -> number
pure T sum( T )( in T[] args ){
	T ret = 0;
	foreach( i ; 0..args.length ){
		ret += args[i];
	}
	return ret;
}
pure T ave(T)( in T[] args ){
	return args.sum()/args.length;
}
pure real multi( in real[] args ){
	real ret = 1.0;
	foreach( i ; 0..args.length ){
		ret *= args[i];
	}
	return ret;
}

// T[] -> bool
pure bool any( T )( in T[] args , in T target ){
	foreach( arg ; args ){
		if( arg == target ){return true;}
	}
	return false;
}
pure bool all( T )( in T[] args , in T cond ){
	foreach( arg ; args ){
		if( arg != cond ){return false;}
	}
	return true;
}
pure bool have( T )( in T[] args , in T[] target ... ){
	bool[] found = new bool[](target.length);
	foreach( arg ; args ){
		foreach( i,t ; target ){
			if( arg == t ){
				found[i] = true;
			}
		}
	}
	foreach( f ; found ){
		if( f == false ){return false;}
	}
	return true;
}


unittest{
	assert( [1,2,3,4,5].sum() == 15 );
	assert( [1,2,3,4,5].ave() == 3 );
	assert( cmp( [0.3,0.3].multi() , 0.09 ) , "multi() test failed" );
	assert( cmp( [0.3,0.3,0.3].multi() , 0.027 ) , "multi() test failed" );
	
	assert( [1,1,1].all(1) == true );
	assert( [1,1,2].all(1) == false );
	assert( [1,1,2].any(2) == true );
	assert( [1,1,2].any(3) == false );
	
	assert( [1,2,3,4,5].have([1,3,5]) == true );
	assert( [1,2,3,4,5].have([1,3,5,7]) == false );
	
}
0