Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <string>#include <algorithm>#include <cmath>using namespace std;int countSet(vector<int> nums, int K) {sort(nums.begin(), nums.end());int n = nums.size();int left = 0, right = n - 1;long long res = 0;while (left < right) {int sumx = nums[left] + nums[right];if (sumx > K) right--;else {int shift = right - left;long long tmp = 1;while (shift > 30) {tmp <<= 30;tmp %= 1000000007;shift -= 30;}tmp <<= shift;tmp %= 1000000007;res = (res + tmp) % 1000000007;left++;}}