#ifndef INCLUDE_MODE #define INCLUDE_MODE // #define REACTIVE // #define USE_GETLINE /* #define SUBMIT_ONLY */ #define DEBUG_OUTPUT // #define SAMPLE_CHECK dummy #endif #ifdef INCLUDE_MAIN VO Solve() { CIN( ll , N , K ); RETURN( ExpandRandomAccess( {"yuusaan"} , "yn" , {0,0} , vector>{{N-1,K}} ) ); } REPEAT_MAIN(1); #else /* INCLUDE_MAIN */ #ifdef INCLUDE_SUB // /* COMPAREに使用。圧縮時は削除する。*/ // using answer_type = ll; // answer_type Naive( int N , int M , int K , const vector& A , const bool& debug_output = true ) // { // answer_type a{}; // return a; // } // // answer_type Answer( int N , int M , int K , const vector& A , const bool& debug_output = true ) // { // answer_type a{}; // return a; // } /* 圧縮時は中身だけ削除する。*/ IN VO Experiment() { // 1変数 ../Contest/Template/Experiment/OneVariable.txt // 2変数 ../Contest/Template/Experiment/TwoVariable.txt // 3変数 ../Contest/Template/Experiment/ThreeVariable.txt } /* 圧縮時は中身だけ削除する。*/ IN VO SmallTest() { // 数 ../Contest/Template/SmallTest/Number.txt // 配列 ../Contest/Template/SmallTest/Array.txt // 順列 ../Contest/Template/SmallTest/Permutation.txt // 文字列 ../Contest/Template/SmallTest/String.txt // グリッド ../Contest/Template/SmallTest/Grid.txt // グラフ ../Contest/Template/SmallTest/Graph.txt // 重み付きグラフ ../Contest/Template/SmallTest/WeightedGraph.txt // 区間クエリ ../Contest/Template/SmallTest/IntervalQuery.txt CERR( "全てのケースを確認しました。" ); } /* 圧縮時は中身だけ削除する。*/ IN VO RandomTest( const int& test_case_num ) { // 数 ../Contest/Template/RandomTest/Number.txt // 配列 ../Contest/Template/RandomTest/Array.txt // 順列 ../Contest/Template/RandomTest/Permutation.txt // 文字列 ../Contest/Template/RandomTest/String.txt // グリッド ../Contest/Template/RandomTest/Grid.txt // グラフ ../Contest/Template/RandomTest/Graph.txt // 重み付きグラフ ../Contest/Template/RandomTest/WeightedGraph.txt // 区間クエリ ../Contest/Template/RandomTest/IntervalQuery.txt // 多種クエリ ../Contest/Template/RandomTest/MultiTypeQuery.txt REPEAT( test_case_num ){ } CERR( "全てのケースを確認しました。" ); } #define INCLUDE_MAIN #include __FILE__ #else /* INCLUDE_SUB */ #ifdef INCLUDE_LIBRARY /* VVV 常設でないライブラリは以下に挿入する。*/ template inline ll TruncatedSum( const ll& n , const ll& m , const INT& bound ) { assert( m >= 0 && bound >= 0 ); return n <= bound - m ? n + m : bound + 1; } template inline ll TruncatedProduct( const ll& n , const ll& m , const INT& bound ) { assert( m >= 0 && bound >= 0 ); return m == 0 ? m : n <= bound / m ? n * m : bound + 1; } template