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);
}
posted @ 2024-11-14 15:19  zhuzc_114514  阅读(2)  评论(0编辑  收藏  举报