← All problems

1010. Pairs of Songs with Total Durations Divisible by 60

MediumOpen on LeetCodeProblem statement

Problem Statement

1010. Pairs of Songs With Total Durations Divisible by 60

Medium


You are given a list of songs where the ith song has a duration of time[i] seconds.

Return the number of pairs of songs for which their total duration in seconds is divisible by 60. Formally, we want the number of indices i, j such that i < j with (time[i] + time[j]) % 60 == 0.

 

Example 1:

Input: time = [30,20,150,100,40]
Output: 3
Explanation: Three pairs have a total duration divisible by 60:
(time[0] = 30, time[2] = 150): total duration 180
(time[1] = 20, time[3] = 100): total duration 120
(time[1] = 20, time[4] = 40): total duration 60

Example 2:

Input: time = [60,60,60]
Output: 3
Explanation: All three pairs have a total duration of 120, which is divisible by 60.

 

Constraints:

C++

Source file
class Solution {
public:
    int numPairsDivisibleBy60(vector<int>& time) {
        array <int, 60> v;
        for ( int i=0; i<60; i++){
            v[i] = 0;
        }
        int res = 0;
        for ( int i=0; i<time.size(); i++){
            v[time[i]%60] += 1;
        }
        for ( int i=1; i<=29; i++){
            if (!(v[i]))
                continue;
            res += v[i] * v[60-i];
            cout << res;
        }
        res += ((v[0]*(v[0]-1))/2 + (v[30]*(v[30]-1))/2);
        cout << v[30];
        return res;
    }
};