我在做 Chocolate 一题时,需要对数组 a 从大到小排序。所以我写了:
sort(a+1,a+1+n,[](int p,int q){ return a[p]>a[q]; });
在 AT 上 RE 了若干个点,WA 了一个。
因为之前听说没有严格比较会莫名 RE,所以我改成了:
sort(a+1,a+1+n,[](int p,int q){ return a[p]==a[q]?p<q:a[p]>a[q]; });
结果同上。
后面受不了了查看了题解,改成了:
sort(a+1,a+1+n,greater<int>());
于是过了。所以询问前面两种写法为什么 RE。