这两段代码的主要区别在于排序数组A、B、C的起始下标不同。在第一段代码中,起始下标是1,而在第二段代码中,起始下标是ida、idb、idc,这是因为在读取输入时,ida、idb、idc在每一个元素读入之后都会自增1。因此,排序时起始下标应该是ida、idb、idc,而不是1。

这个错误会导致排序数组A、B、C中的元素顺序错乱,从而导致最终结果不一致。正确的做法是将第二段代码中的排序部分修改为:

sort(A + 1, A + ida, cmp);
sort(B + 1, B + idb, cmp);
sort(C + 1, C + idc, cmp);

这样就能得到与第一段代码相同的结果。

#includebitsstdc++husing namespace std;typedef long long ll;const int nn=2e5+10;ll nm;ll AnnBnnCnn;ll idaidbidc;bool cmpint aint b	return ab;void solve	cinnm;	forint i=1;i=n;i++		ll tx;cintx;		ift==0

原文地址: https://www.cveoy.top/t/topic/ioTT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录