对拍

来源:互联网 发布:网络直播卖东西 编辑:程序博客网 时间:2024/04/26 15:59
test.cpp :对拍程序;
gen.cpp  :产生随机数的程序
prog.cpp:选手写的正式程序(要提交的)
prog1.cpp:选手写的暴力程序(用于验证的,不能提交)

注意:以上所有CPP需要手工编译成可执行文件,也可使用compile.bat

微笑微笑微笑

prog.in  :gen产生的随机数据
prog.out:正式程序的输出
prog2.out:暴力程序的输出

开始对拍:
第1步:开始->运行->cmd
第2部:进入对拍目录(用cd命令,也可以建立批助理,用start命令进入当前目录)

第3部:输入:test.ext 运行对拍程序

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

prog1

------------------------------------------------------------------------------------------------

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<string>
#include<cstring>
#include<ctime>
using namespace std;


int n,m,k,r=0,a[10001],b[10001],c[100000002];


//inline void midsort(int x,int p,int s)
//{
// int mid,t;
// mid=(s+p)/2;
// if (x<c[mid] && x>c[mid-1])
// {
// t=x;
// for (int i=p;i>mid;--i)
// c[i]=c[i-1];
// c[mid]=x;
// }
// if (x>c[mid] && x<c[mid+1])
// {
// t=x;
// for (int i=p;i>mid+1;--i)
// c[i]=c[i-1];
// c[mid+1]=x;
// }
// if (c[mid-1]>x)
// {
// for (int i=p;i>mid;--i)
// c[i]=c[i-1];
// c[mid]=x;
// midsort(x,mid,1);
// }
// if (c[mid+1]<x)
// {
// midsort(x,p,mid+1);
// }
//}


int main()
{
freopen("prog.in","r",stdin);
freopen("prog.out","w",stdout);

scanf("%d%d%d",&n,&m,&k);

for (int i=1;i<=n;++i)
scanf("%d",&a[i]);
for (int i=1;i<=m;++i)
scanf("%d",&b[i]);

for (int i=1;i<=n;++i)
for (int j=1;j<=m;++j)
{
r++;
c[r]=a[i]*b[j];
// if (r==2 && c[1]>c[2])
// swap(c[1],c[2]);
// if (r>2)
// midsort(c[r],r,1);
}
sort(c+1,c+r+1);
cout<<c[k];
return 0;

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

prog2

-------------------------------------------------------------------------------------------------------------------

#include<cstdio>
#include<cmath>
#include<cctype>
#include<ctime>
#include<cstdlib>
#include<cstring>
#include<string>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;


int n,m,k,bz=1,r=0,a[10001],b[10001],c[100000002];


inline int midsort(int x,int p,int s)
{
int mid,t;
mid=(s+p)/2;
if (x<=c[mid] && x>=c[mid-1] && bz==1)
{
t=x;
for (int i=p;i>mid;--i)
c[i]=c[i-1];
c[mid]=x;
bz=0;
}
if (x>=c[mid] && x<=c[mid+1] && bz==1)
{
t=x;
for (int i=p;i>mid+1;--i)
c[i]=c[i-1];
c[mid+1]=x;
bz=0;
}
if (c[mid-1]>x)
{
for (int i=p;i>mid;--i)
c[i]=c[i-1];
c[mid]=x;
midsort(x,mid,1);
}
if (c[mid+1]<x)
{
midsort(x,p,mid+1);
}
bz=1;
}


int main()
{
freopen("prog.in","r",stdin);
freopen("prog2.out","w",stdout);

scanf("%d%d%d",&n,&m,&k);

for (int i=1;i<=n;++i)
scanf("%d",&a[i]);
for (int i=1;i<=m;++i)
scanf("%d",&b[i]);

for (int i=1;i<=n;++i)
for (int j=1;j<=m;++j)
{
r++;
c[r]=a[i]*b[j];
if (r==2 && c[1]>c[2])
swap(c[1],c[2]);
if (r>2)
midsort(c[r],r,1);
}
cout<<c[k];
return 0;

}

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

gen

-------------------------------------------------------------------------------------------------------------------

#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<algorithm>
using namespace std;


int main()
{
   freopen("prog.in","w",stdout);  //正式程序的输出 
   srand(time(0));                 //置随机数种子,需要#include<ctime> 
   printf("20\n");
   printf("20\n");
   printf("15\n");
   for(int i=1;i<=20;i++)
      printf("%d ",rand()%10000+1); 
   for(int i=1;i<=20;i++)
      printf("%d ",rand()%10000+1); //产生[1,100]之间的一个随机数
   return 0; 
}

-------------------------------------------------------------------------------------------------------------------

0 0