題目大意:給你兩個個數據s, n,下面輸入n組數據代表牛的距離,如果兩頭牛的之間距離和小於等於s 就算是一對, 求一共有多少對?
策略:直接遍歷,肯定TL, 先用一個數組保存比s小的,快排一下,最後搜索一下。
代碼:
#include#include #include using namespace std; int s[1000005]; int main() { int n, m, i, j; while(scanf(%d%d, &n, &m) == 2){ int a, k = 0; for(i = 0; i < n; i ++){ scanf(%d, &a); if(a < m) s[k++] = a; } int ans = 0; int flag = 0; sort(s, s+k); for(i = 0; i < k; i ++){ for(j = i+1; j< k; j ++){ if(s[i]+s[j] <= m){ ++ans; } else{ break; } } } printf(%d , ans); } return 0; }