Source Code
//Includes
#include <bits/stdc++.h>
#include <cstdio> //For input/ouput file
#include <numeric> //For GCD and LCM
#include <iomanip> //For Decimal Points
#include <chrono>

//Marcos
#define fast_io() std::ios::sync_with_stdio(false); std::cin.tie(NULL);
#define TestCases(type) type t; std::cin >> t; while(t--)
#define ArrOne(name, type, size) type* name = new type[size]
#define ArrTwo(name, type, rows, cols) type** name = new type*[rows]; for(int i = 0; i < rows; i++){ name[i] = new type[cols]; }
#define sp(a, b, type) { type temp = a; a = b; b = temp; }
#define PI 3.14159265358979
#define MOD 1000000007
#define ll long long
#define lli long long int
#define ull unsigned long long
#define ld long double
#define li long int

void solve() {
    ll n, k;
    std::cin >> n >> k;
    std::vector<ll> arr(n), pfx(n);
    std::cin >> arr[0]; pfx[0] = arr[0];
    for(ll i = 1; i < n; i++) {
        std::cin >> arr[i];
        pfx[i] = pfx[i - 1] + arr[i];
    }

    ll cnt = 0;
    for(ll i = 0; i < (n - 1); i++) {
        ll _sum = pfx[i];
        for(ll j = (n - 1); j > i; j--) {
            _sum += arr[j];
            if(_sum % k == 0) {
                cnt++;
            }
        }
    }
    std::cout << cnt << "\n";

}

void testCases() {
    TestCases(int)
        solve();
}

//main function
int main()
{
    //#
    fast_io();
    //#

    //#
    #ifndef ONLINE_JUDGE
        std::freopen("input.txt", "r", stdin);
        std::freopen("output.txt", "w", stdout);
    #endif
    //#

    testCases();
    //solve();

    return 0;
}
Copy
Number of Ways talalomar001
GNU G++17
2089 ms
528 KB
Time Limit Exceeded