调了很久发现是没开long long,警钟撅烂

P1102 A-B 数对

这个题为什么会爆ll呢 最大不是2的31次方减1吗
by zhangjunru @ 2023-10-23 20:41:28


```cpp #include<bits/stdc++.h> using namespace std; const int N = 1e6 + 1; #define read(a) {char c;while((c=getchar())>47) a=a*10+(c^48);} using namespace std; long long n, c; int a[30000000]; int zz(int l, int r,int t) { int mid; while (l <= r) { mid = l + (r - l) / 2; if (a[mid] < t) { l = mid + 1; } else r = mid - 1; } return l; } int yy(int l, int r, int t) { int mid; while (l <= r) { mid = l + (r - l) / 2; if (a[mid] <= t) { l = mid + 1; } else { r = mid - 1; } } return l; } int main() { cin >> n >> c; for (int i = 0; i < n; i++) { cin >> a[i]; } sort(a, a + n); long long ans = 0; for (int i = 0; i < n; i++) { int x=a[i]; int t = x - c; int l = 0, r = n - 1; int zt = zz(l, r, t); int yt = yy(l, r, t); if(yt!=-1&&zt!=-1) ans += yt - zt; } cout << ans; return 0; } ``` @[zhangjunru](/user/1105732) 我也很奇怪,手写的lowe_bound和upper_bound,把ans改成ll才过,int的话测试点3一直过不了
by yiban202241040105 @ 2023-10-24 20:09:18


对啊,我也很奇怪,我是用二分的
by dyzxjzx @ 2023-10-24 22:28:43


我就不一样了,看成了10^30,然后想了半天为什么这题标签没有高精度(大早上没有睡醒)
by SICKO @ 2023-10-29 11:05:23


|