#include using namespace std; #include using namespace atcoder; #define rep(i, n) for (int i = 0; i < (n); ++i) #define YES cout << "Yes" << endl; #define NO cout << "No" << endl; #define chmin(a,b) a=min(a,b) #define chmax(a,b) a=max(a,b) // using mint = modint998244353; void solve() { // ここに1テストケース分の処理を書く int n,k; cin>>n>>k; if(n/2>u; cout<<"Impossible";return; } k++; vector>dp(n+1,vector(2*k,-(1l<<60))); dp[0][0]=0; rep(i,n){ long long a; cin>>a; dp[i+1]=dp[i]; rep(j,k-1){ chmax(dp[i+1][j+k+1],dp[i][j]+a); } rep(j,k){ chmax(dp[i+1][j],dp[i][j+k]); } } cout<> t; // テストケース数が最初に入力される問題の場合は、ここのコメントアウトを解除する while (t--) { solve(); } }