
考虑分类讨论1.a 与 b 都大于零或小于零不论进行操作一还是操作二其中的一个值都会越来越大导致差值变大所以一种情况为abs(a[i]-b[i])然后还有一种情况在此写一下对于第一种情况aab,bb则差值为 b 同理对于第二种情况差值为 a 所以主要代码为coutmin(abs(a[i]),min(abs(b[i]),abs(a[i]-b[i])));。2.接下来就是 a 和 b 异号的情况了如 a1,b−8如果在正数上相加正数会变小 如果在负数上相加负数会变大双方的差值会越来越小直到变成 0。接下来代码就非常好写了O(n) 的复杂度就能过。#includebits/stdc.h using namespace std; int n; int a[1000005]; int b[1000005]; int main(){ cinn; for(int i1;in;i){ cina[i]b[i]; if((a[i]0b[i]0)||(a[i]0b[i]0)){ coutmin(abs(a[i]),min(abs(b[i]),abs(a[i]-b[i])))endl; }else if(a0||b0){ cout0endl; }else{ cout0endl; } } return 0; }