Submission
Status:
[P-SSSSSSSS]
Score: 0
User: detectives_conan
Problemset: 02.Forbidden Boss Room
Language: cpp
Time: 0.013 second
Submitted On: 2025-04-01 10:18:44
/*
Author : detective conan
Problem : monster
Created : 01/04/2025 10:04 UTC+7
*/
#include <bits/stdc++.h>
#define int long long
#define FOR(i, s, t) for(int i = s; i <= t; ++i)
#define rep(i, s, t) for(int i = s; i >= t; --i)
#define HAVE_TESTCASE true
#define vec vector
#define pil pair<int, i64>
#define pli pair<i64, int>
#define pii pair<int, int>
#define pll pair<i64, i64>
#define tiil tuple<int, int, i64>
#define tlii tuple<i64, int, int>
#define all(a) a.begin(), a.end()
#define great(a) a, vec<a>, greater<a>
#define lbv(a, m) lower_bound(all(a), m) - a.begin()
#define ubv(a, m) upper_bound(all(a), m) - a.begin()
#define pb push_back
#define ppb pop_back
#define pf push_front
#define ppf pop_front
#define eb emplace_back
#define F first
#define S second
#define conan cin.tie(nullptr)->sync_with_stdio(false)
#define ANS(n, s) cout << n << s
using namespace std;
using u8 = uint8_t;
using u32 = unsigned;
using i64 = int64_t;
using u64 = uint64_t;
void solve(){
int n, m; cin >> n >> m;
vec<int> a(n + 1, 0ll);
vec<vec<int>> dp(n + 1, vec<int>(2, 0ll));
FOR(i, 1, n) cin >> a[i];
dp[1][0] = 0, dp[1][1] = (a[1]%m);
FOR(i, 2, n){
dp[i][1] = max((a[i] + dp[i - 1][0])%m, (a[i] + dp[i - 1][1])%m);
dp[i][0] = max(dp[i - 1][0], dp[i - 1][1]);
}
int ans = 0;
FOR(i, 1, n) ans = max({ans, dp[i][0], dp[i][1]});
cout << ans << '\n';
}
int32_t main(){
conan;
int t = 1;
if(HAVE_TESTCASE) cin >> t;
while(t--) solve();
}