CF 显示,我的这组数据(截取了原多测中我的代码被判定出错的一组数据):
71 261 2352
输出的第一个数为 39
而不是 2
,但是我本地测试(windows11,Dev-C++ version 5.11)结果,对这组数据的输出为:
2 63 2 64 2 65 2 66 2 67 2 68 2 69 2 70 2 71 3 4 3 5 3 6 3 7 3 8 3 9 3 10 3 11...
并没有问题。我怀疑是系统差异导致的。
#include<bits/stdc++.h>
#define int long long
using namespace std;
int t, n, l, r;
signed main(){
cin >> t;
while (t--){
cin >> n >> l >> r;
--l;
for (int i = 1; i <= n; i++){
if (l > 2 * (n - i))
l -= 2 * (n - i), r -= 2 * (n - i);
else{
for (int j = i + 1; j <= n; j++){
if (!r)
break;
if (r == 1){
r = 0;
cout << i << " ";
}else if (l == 1){
l = 0;
cout << j << " ";
r--;
}else if (l <= 0){
r -= 2;
cout << i << " " << j << " ";
}else
l -= 2, r -= 2;
}
}
}
if (r)
cout << 1;
cout << "\n";
}
return 0;
}