讨论 / 我连交N次还是这个样
hws_sheng 2009-03-26 04:51:00
点我顶贴 收藏 删除
#include<stdio.h>

#include<string>

#include<stdlib.h>

int Max,N=0,M=0,S[10001],T[10001],ans[30001];

bool Bo[300001];

char c[101000];

int tem(const void*n1,const void*n2){

int x=*(int*)n1,

y=*(int*)n2;

return x-y;

}

void Init(){

gets(c);int x=0;

while (x<strlen(c)){

++N;

while (c[x]!=’ ’ && x<strlen(c))

S[N]=S[N]*10+c[x++]-’0’;

x++;

}

gets(c);x=0;

qsort(S+1,N,sizeof(int),tem);

Max=S[N];

while (x<strlen(c)){

++M;

while (c[x]!=’ ’ && x<strlen(c))

T[M]=T[M]*10+c[x++]-’0’;

Max=Max>T[M]?Max:T[M];

x++;

}

}

void u(){

for (int i=1;i<=Max;i++) Bo[i]=false;

for (int i=1;i<=N;i++) Bo[S[i]]=true;

for (int i=1;i<=M;i++) Bo[T[i]]=true;

bool bo=false;

int p=0;

for (int i=1;i<=Max;i++)

if (Bo[i]) ans[++p]=i;

if (!p) printf("-1\n");

else {

for (int i=1;i<p;i++) printf("%d ",ans[i]);

printf("%d\n",ans[p]);

}

}

void del(){

for (int i=1;i<=M;i++) Bo[T[i]]=false;

bool bo=false;

int p=0;

for (int i=1;i<=Max;i++){

if (Bo[i]) ans[++p]=i;

Bo[i]=false;

}

if (!p) printf("-1\n");

else {

for (int i=1;i<p;i++) printf("%d ",ans[i]);

printf("%d\n",ans[p]);

}

}

void n(){

int p=0;

// memset(Bo,false,sizeof(Bo));

for (int i=1;i<=N;i++) Bo[S[i]]=true;

for (int i=1;i<=M;i++) Bo[T[i]]=1-Bo[T[i]];

bool bo=false;

for (int i=1;i<=N;i++)

if (!Bo[S[i]])ans[++p]=S[i];

if (!p) printf("-1\n");

else {

for (int i=1;i<p;i++) printf("%d ",ans[i]);

printf("%d\n",ans[p]);

}

}

void o(){

bool bo=false;

int p=0;

for (int i=1;i<=Max;i++)

if (Bo[i])ans[++p]=i;

if (!p) printf("-1\n");

else {

for (int i=1;i<p;i++) printf("%d ",ans[i]);

printf("%d\n",ans[p]);

}

}

int main()

{

Init();

u();del();n();o();

return 0;

}

状态: Unaccepted

测评机: Xeost[5]

得分: 70分

提交日期: 2009-3-26 15:01:00

有效耗时: 1641毫秒

测试结果1: 通过本测试点|有效耗时47ms

测试结果2: 通过本测试点|有效耗时47ms

测试结果3: 通过本测试点|有效耗时62ms

测试结果4: 通过本测试点|有效耗时157ms

测试结果5: 通过本测试点|有效耗时484ms

测试结果6: 通过本测试点|有效耗时797ms

测试结果7: 选手程序运行超过时限

测试结果8: 选手程序运行超过时限

测试结果9: 选手程序运行超过时限

测试结果10: 通过本测试点|有效耗时47ms

#1 xxwzy@2009-03-26 04:51:00
回复 删除
三个一到30000的一重循环不就解决了吗?

你何必这么复杂?

查看更多回复
提交回复