我造了道题,写了个数据生成器如下
#include <bits/stdc++.h>
using namespace std;
long long random(long long mod){
return rand() * rand() % mod + 1;
}
int main() {
freopen("3.in","w",stdout);
ios::sync_with_stdio(false);
srand(time(0));
long long n=500000,m=500000;
cout<<n<<' '<<m<<'\n';
for(int i=1;i<=n;i++) cout<<random(1000000000)<<' ';
cout<<'\n';
for(int i=1;i<=500000;i++){
long long r=random(500000);
long long l=random(r-1);
cout<<l<<' '<<r<<'\n';
}
return 0;
}
但是它总是在
for(int i=1;i<=500000;i++){
long long r=random(500000);
long long l=random(r-1);
cout<<l<<' '<<r<<'\n';
}
输出不满500000行就结束程序了,想问下为啥。
环境:Windows11,C++11