https://codeforces.com/contest/1207
データが小さい場合には、暴力的なことができます
1の#include <iostreamの> 2の#include <sstream提供> 3の#include <fstreamの> 4の#include <アルゴリズム> 5の#include <CStringの> 6の#include <iomanip> 7の#include <cstdlib> 8の#include <CCTYPE> 9#含む<ベクトル> 10の#include < ストリング > 11の#include <cmath> 12の#include <ctimeの> 13の#include <積層> 14の#include <キュー> 15の#include <地図> 16の#include < 設定 > 17 の#defineMEM(A、B)のmemset(A、B、はsizeof(A)) 18 の#defineランダム(B)(RAND()%(B-A + 1)+ A) 19 の#define LL長い長い 20 の#define ULL符号なし長い長い 21 の#define E 2.71828182 22件 の#defineパイACOS(-1.0) 23件 の#define LS(RT)(RT << 1) 24個 の#define RS(RT)(RT << 1 | 1) 25 の#define lowbit (X)(X&( - X)) 26 使用 名前空間STD。 27 int型リード() 28 { 29 INT S = 1、X = 0 。 30 チャー CH = GETCHAR()。 31 一方、 {(isdigit(CH)!)場合(CH == ' - ')S = - 1 ; CH = GETCHAR();} 32 ながら(isdigit(CH)){X = 10 * X + CH- ' 0 ' ; CH = GETCHAR();} 33 リターン X * S。 34 } 35 int型のB、P、F、H、C。 36 ボイド()解決 37 { 38 INT RES = - 1 。 39 のための(int型 I = 0; I '=分(P、B >> 1); ++ I) 40 { 41 のint J =分(F、(BI * 2)>> 1 )。 42 RES = MAX(RES、私は、C *の+ Hの* j)を、 43 } 44 COUT << RES << ENDL。 45 } 46 のint main()の 47 { 48 int型のテスト=を読み取ります()。 49 一方(test-- ) 50 { 51 B =リード()、P =)(F =読み取り、read()は、H =読み出す()、C = 読み取ります(); 52 )(解きます。 53 } 54 }
B、広場フィリング