Data_Maker
#include <bits/stdc++.h>
using namespace std;
int pid;
char fn[1000];
void gen_one(int n) {
sprintf(fn, "data%d.in", ++ pid);
freopen(fn, "w", stdout);
printf("%d\n", n);
fclose(stdout);
// fprintf(stderr, "")
cerr << "pid=" << pid << ", n=" << n << endl;
sprintf(fn, "std.exe < data%d.in > data%d.out", pid, pid);
system(fn);
}
int main() {
gen_one(10);
gen_one(100);
gen_one(1000);
}
使用例
#include <bits/stdc++.h>
using namespace std;
int pid,a[100005];
char fn[1000];
mt19937 Rnd(time(NULL));
void make(int n,int V){
int op=Rnd()&1;
V>>=1;
printf("%d\n",n);
for(int i=1;i<=n;i++)a[i]=((Rnd()%V+1)<<1)-((i&1)^op);
shuffle(a+1,a+1+n,Rnd);
for(int i=1;i<=n;i++)printf("%d ",a[i]);
}
void gen_one(int n,int v) {
sprintf(fn, "data%d.in", ++ pid);
freopen(fn,"w",stdout);
make(n,v);
fclose(stdout);
sprintf(fn, "std.exe < data%d.in > data%d.out", pid, pid);
system(fn);
}
int main() {
gen_one(10,10);
gen_one(100,100);
gen_one(1000,1000);
}