多组数据输入输出

(此处是题目T324159 卡空间的题目/电脑白吃(有数据,而且有100个))
的数据制作
配置文件 :

#include <fstream>
#include <iostream>
#include <string>
#include<bits/stdc++.h>
#define ll long long
#define for1(i,a,b) for(register ll i = a;i <= b;i ++)
using namespace std;
int main() 
{
	freopen("config.yml","w",stdout);
	
	for1(i,1,100)
	{
		printf("%d.in:\n",i);
		printf("  timeLimit: 50\n");
		printf("  memoryLimit: 1000\n");
		printf("  score: 114514\n");
		printf("  subtaskId: 1\n");
		printf("\n");
	}
	return 0;
}

数据生成器 :

#include<bits/stdc++.h>
#define ll long long
#define for1(i,a,b) for(register ll i = a;i <= b;i ++)
using namespace std;
const int maxn = 1e7 + 5;
const int mod = 1e9;
int n;
ll suiji1()//拿到1个1到n之间的数字 
{
	return ((((1ll * rand()) << 15ll) | (1ll * rand())) % n * 39) % n + 1;
}

ll suiji2()//拿到1个1到1e9之间的数字 
{
	return ((((1ll * rand()) << 15ll) | (1ll * rand())) % mod * 39) % mod + 1;
}
int vis[maxn],a[maxn];
char filePath[10000]; //为filePath配空间
int main()
{
	srand(time(0));
	int T = 100;
	while(T--)
	{
		sprintf(filePath, "%d.in", T + 1); //命名为"0.txt", "1.txt", …
		ofstream outfile;
		outfile.open(filePath);
		n = 1e5;
		outfile << n << '\n';
		ll mx = 0;
		for1(i,1,n) a[i] = 0;
		int zhong = suiji2();
		int num = 0;
		while(num <= n/2)
		{
			int k = suiji1();
			if(a[k] == 0)
			{
				num ++;
				a[k] = zhong;
			}
		}
		
		for1(i,1,n)
		{
			if(a[i] == 0)
			{
				int k = suiji2();
				while(k == zhong) k = suiji2();
				a[i] = k;	
			}
		}
	
		for1(i,1,n)
			outfile << a[i] << ' ';
		outfile << endl;
		outfile.close();
	}
	return 0;
}

标程:

#include<bits/stdc++.h>
#define ll long long
#define for1(i,a,b) for(register ll i = a;i <= b;i ++)
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
int num,now,n,x;
char filePath[10000]; //为filePath配空间
int main() 
{
	int T = 100;
	while(T--)
	{
		sprintf(filePath, "%d.in", 100 - T); //命名为"0.txt", "1.txt", …
		ofstream fout;
		ifstream fin;
		fin.open(filePath);
		fin >> n;
		for1(i,1,n) 
		{
			fin >> x;
			now = (num == 0?x:now);
			num += (x == now?1:-1);
//		cout << now << ' ' << num << endl;
		}
		fin.close();
		sprintf(filePath, "%d.out", 100 - T); //命名为"0.txt", "1.txt", …
		fout.open(filePath);
		fout << now << endl;
	}
	return 0;
}
posted @ 2023-03-24 12:29  yyx525jia  阅读(13)  评论(0)    收藏  举报