今天下午好像被某人出卖给了学长……
得找个机会敲打敲打他○( ^皿^)っHiahiahia…
好久没做题了,把昨天晚上没写完的题补上
中午有活动,没吃饱,晚上好好补一顿
题目
HDOJ-2034人见人爱A-B
Problem Description
参加过上个月月赛的同学一定还记得其中的一个最简单的题目,就是{A}+{B},那个题目求的是两个集合的并集,今天我们这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)
呵呵,很简单吧?
Input
每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开.
如果n=0并且m=0表示输入的结束,不做处理。
Output
针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格.
Sample Input
3 3 1 2 3 1 4 7
3 7 2 5 8 2 3 4 5 6 7 8
0 0
Sample Output
2 3
NULL
AC的代码
/*每组输入数据占1行,每行数据的开始是2个整数n(0<=n<=100)和m(0<=m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的
属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开.如果n=0并且m=0表示输入的结束,不做处理。
Output
针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“NULL”,否则从小到大输出结果,为了简化问题,每个元素后面跟一个空格.
*/
#include<stdio.h>
#include<string.h>
void selectsort(int arr[],int n);
int main(void)
{
int arr[2][105],output[105],i,j,count,n,m,temp;
while(scanf("%d %d",&n,&m)==2&&(n!=0||m!=0)){//这个条件好坑……
memset(arr,0,sizeof(int));
count=0;
for(i=0;i<n;i++){//不重复地读入A集合
scanf("%d",&temp);
for(j=0;j<i;j++){
if(arr[1][j]==temp){
break;
}
}
if(i==j){
arr[1][i]=temp;
arr[0][i]=1;
}
}
for(i=0;i<m;i++){//去掉A集合中B集合的元素
scanf("%d",&temp);
for(j=0;j<n;j++){
if(temp==arr[1][j]){
arr[0][j]=0;
break;
}
}
}
for(i=0;i<n;i++){
if(arr[0][i]==1){//将集合中剩下的元素输入到output
output[count]=arr[1][i];
count++;//count表示个数
}
}
selectsort(output,count);
for(i=0;i<count;i++)//输出output
printf("%d ",output[i]);
if(count==0)
printf("NULL\n");
else
printf("\n");
}
return 0;
}
void selectsort(int arr[],int n)
{
int i,j,loc,temp;
for(i=0;i<n-1;i++){
for(j=i+1,temp=arr[j],loc=j;j<n;j++){
if(temp>arr[j]){
temp=arr[j];
loc=j;
}
}
if(arr[i]>arr[loc]){
arr[loc]=arr[i];
arr[i]=temp;
}
}
return;
}
主要是判断条件比较坑……
找了好几圈才发现
Run ID | Submit Time | Judge Status | Pro.ID | Exe.Time | Exe.Memory | Code Len. | Language | Author |
---|---|---|---|---|---|---|---|---|
28889039 | 2019-04-11 15:54:43 | Accepted | 2034 | 15MS | 1692K | 1594 B | C | Overstars |
28888929 | 2019-04-11 15:47:08 | Wrong Answer | 2034 | 15MS | 1696K | 1521 B | C | Overstars |
28888797 | 2019-04-11 15:39:55 | Wrong Answer | 2034 | 31MS | 1692K | 1489 B | C | Overstars |
28888620 | 2019-04-11 15:28:54 | Wrong Answer | 2034 | 31MS | 1696K | 1518 B | C | Overstars |
28888608 | 2019-04-11 15:28:14 | Compilation Error | 2034 | 0MS | 0K | 1483 B | C | Overstars |
28884082 | 2019-04-10 23:02:28 | Wrong Answer | 2034 | 0MS | 1700K | 979 B | C | Overstars |
28884074 | 2019-04-10 23:01:49 | Wrong Answer | 2034 | 0MS | 1688K | 978 B | C | Overstars |
2019年4月11日16点05分