想出题的孩子
查看原帖
想出题的孩子
516738
gaoleng_luogu_name楼主2023/4/8 11:51

不会出题,求助!全WA

题目描述 定义一个有n个数字的一维数组,对其进行p次操作。每次操作输入两个数a,b,如果n[a]小于等于n[b],就将两个数的下标所对应的数调换,否则将n[b]加上1。p轮后,输出数组n。

输入格式 第一行输入n和p,第二行输入n个数,从第三行开始的p行输入a和b。

输出格式 输出n个数

输入输出样例 输入 #1复制 3 1 1 2 3 1 2 输出 #1复制 2 1 3 输入 #2复制 3 2 4 5 6 1 2 1 2 输出 #2复制 5 5 6 说明/提示 n,q,a,b<=100.n[i]<=10000

代码:

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
	int a[110]; 
	int n,q,x,y;
	scanf("%d %d",&n,&q);
	for(int i=1;i<=n;i++) scanf("%lld",&a[i]);
	for(int i=1;i<=q;i++)
	{
		scanf("%d %d",&x,&y);
		if(a[x]<=a[y]) swap(a[x],a[y]);
		else a[y]++;
	}
	for(int i=1;i<=n;i++) printf("%d ",a[i]);
	return 0;
}//用Ctrl+Shift+A改吧

然后是出数据模板

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;

ofstream infile,outfile;
int times=10;

void file(int tp){
	char inname[10],outname[11];
	infile.close();
	outfile.close();
	sprintf(inname,"data%02d.in",tp);
	sprintf(outname,"data%02d.out",tp);
	infile.open(inname);
	outfile.open(outname);
}

#define num(a,b) ((rand()*RAND_MAX+rand())%(a-b+1)+a)

int make(int tp);

int main(){
	srand(time(0));
	for(int tp=1;tp<=times;++tp){
		file(tp);
		make(tp);
	}
	return 0;
}
make(int tp){
	ll a[110];
	int n=num(1,100),q=num(1,100),x,y;
	infile<<n<<" "<<q<<endl;
	for(int i=1;i<=n;i++) 
	{
		a[i]=num(1,10000);
		infile<<a[i]<<" ";
	}
	infile<<endl;
	cout<<"Testpoint"<<tp<<":n="<<n<<",q="<<q<<endl;
	for(int i=1;i<=q;i++)
	{
		x=num(1,100),y=num(1,100);
		infile<<x<<" "<<y<<endl;
		if(a[x]<=a[y]) swap(a[x],a[y]);
		else a[y]++;
	}
	for(int i=1;i<=n;i++) outfile<<a[i]<<" ";
}//用Ctrl+Shift+A改吧

麻烦大佬告诉我为什么我无法通过

2023/4/8 11:51
加载中...