Submission

Status:

[PPTSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: pxsit

Problemset: 02.Forbidden Boss Room

Language: cpp

Time: 1.066 second

Submitted On: 2025-05-31 12:00:09

// #pragma GCC optimize("Ofast,fast-math,unroll-loops,no-stack-protector,unsafe-math-optimizations,inline,inline-small-functions,inline-functions")
#include <bits/stdc++.h>
// #pragma GCC target("avx2,bmi,bmi2,sse4.2,popcnt,lzcnt,tune=native")
#define endl '\n'
#define endll cout << '\n';
#define sp ' '
#define cinn int n;cin>> n;
#define testcase int t;cin>>t;while(t--)
const int INF = 1e9;
const long long LINF = 1e18;
const int mod = 1e9+7;
typedef long long ll;
typedef unsigned long long ull;
using namespace std;


int32_t main(){ios::sync_with_stdio(false); cin.tie(nullptr);
    int t;
    cin>>t;
    for(int i=0;i<t;i++){
        int n;
        ll m;
        cin >> n >> m;
        vector<ll> a(n);
        cin >> a[0];
        bool perfect = false;
        ll mx = 1;
        for(int i=1;i<n;i++){
            cin >> a[i];
            if(a[i]%m == m-1){
                perfect = true;
            }
            a[i] = a[i-1] + a[i];
            if(a[i]%m == m-1){
                perfect = true;
            }
            for(int j=0;j<i&&!perfect;j++){
                if((a[i]-a[j]+m)%m == m-1){
                    perfect = true;
                }else{
                    mx = max(mx,(a[i]-a[j]+m)%m);
                }
            }
        }
        if(a[n-1] < m){
            cout << a[n-1];
            continue;
        }
        // for(int i=0;i<n&&!perfect;i++){
        //     if(a[i] % m == m-1){
        //         perfect = true;
        //     }
        //     for(int j=0;j<i;j++){
        //         if((a[i]-a[j]) % m == m-1){
        //             perfect = true;
        //             break;
        //         }else{
        //             if((a[i]-a[j])%m > mx){
        //                 mx = (a[i]-a[j])%m;
        //             }
        //         }
        //     }
        // }
        if(perfect) std::cout << m-1;
        else std::cout << mx;
        if(i != t-1) std::cout << endl;
    }
}