Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<iostream>#include<vector>#include<cstdio>#include<cstring>#include<algorithm>#include<math.h>using namespace std;int main(int argc, const char * argv[]) {long long int A[100000];long long int B[100001];int N;long long int K;scanf("%d %lld", &N, &K);for(int i=0;i<N;i++){scanf("%lld", &A[i]);}sort(A, A+N);B[0] = 0;for(int i=1;i<=N;i++)B[i] = ((B[i-1]+1)*2-1)%1000000007;int left = 0;int right = N-1;long long int ans = 0;while(left<right){while(A[left]>K-A[right]){right--;}if(left>right) break;