結果

問題 No.276 連続する整数の和(1)
ユーザー ClarkClark
提出日時 2016-08-19 06:02:48
言語 D
(dmd 2.109.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
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 10
権限があれば一括ダウンロードができます

ソースコード

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 );
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0