站外题求调
  • 板块灌水区
  • 楼主lorry26
  • 当前回复10
  • 已保存回复10
  • 发布时间2023/7/20 11:20
  • 上次更新2023/11/3 08:42:01
查看原帖
站外题求调
931262
lorry26楼主2023/7/20 11:20

题面:

【题目描述】
(排序速度测试题目,可以上传自己手写的排序程序测试速度)

输入方式如下:

输入两个正整数n,x,y。n表示数据个数,x,y表示随机数生成种子。

假设第i个数的值为a[i],

i=1时,a[1]=1;

2<=i<=n时,设mod=998244353,则a[i]=((a[i-1]*x+y)%mod+mod)%mod.

输出方式如下:

假设数组a为排序后的数组,则输出a[1]-a[2]+a[3]-a[4]…

【输入文件】 sort_speed.in 第一行输入3个正整数n,x,y (1≤n≤1e7,-1e7≤x,y≤1e7)。

【输出文件】 sort_speed.out

输出a[1]-a[2]+a[3]-a[4]…。

【样例输入1】

6 1 2

【样例输出1】

-6

代码:(RE)

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int a[N];
void qsort(int l,int r)
{
if(l>=r) return ;
int lef=l,rig=r,val=a[l];
while(lef<rig)
{
while(lef<rig&&a[rig]>val)
rig--;
if(lef!=rig)
a[lef++]=a[rig];
while(lef<rig&&a[lef]<=val) lef++;
if(lef!=rig) a[rig--]=a[lef];
}
a[lef]=val;
qsort(1,lef-1),qsort(lef+1,r);
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
qsort(1,n);
for(int i=1;i<=n;i++) printf("%d ",a[i]);
return 0;
}
2023/7/20 11:20
加载中...