対象直接的暴力、または少し難しいたい、私は、少し思考を出たくありませんでした。
書式#include <cstdioを> する#include <cstdlib> 書式#include <CStringの> の#include <キュー> の#include <ベクトル> の#include <文字列> の#include <アルゴリズム> 書式#include <iostreamの> の#include <マップ> 書式#include <リスト> #define INF 0x3f3f3f3f の#define inf64 0x3f3f3f3f3f3f3f3f 名前空間stdを使用。 typedefの長い長いLL。 const int型MAXN = 1E6 + 10。 INT [110]、VIS [110]。 INT和[110]。 INTのmain() { int型N、K、M、ANS = 0、和= 0。 scanf関数( "%D%D%D"、&N&K、&M)。 {ため(; iは= Kを<I ++はI = 1 INT) のscanf( "%dの"、および[I])を、 和+ = A [i]は、 INT RES = M -私は和を*。 (RES <0)ブレークであれば、 INT NUM =(K + 1)* I。 (; J INT J = 1 <= kであり、j ++){ (RES場合>は、[J] *(N = - I)){ RESは- [J] *(N - i)を=。 NUM + = N - 、I。 } 他{ NUM + = RES / [J]。 ブレーク; } } ANS = MAX(ANS、NUM)。 } のprintf( "%d個の\ n"、ANS)。 0を返します。 }