HDU 2034 人见人爱A-B
这题有两个条件,一是要A-B,这个可以用个标记,而是要排序,个人觉得先排序,再去A-B好做些.代码如下
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int num1[105],num2[105],des[105],n,m;
int main( )
{
while( scanf( "%d%d",&n,&m ),n|m )
{
memset( des,0,sizeof( des ) );
for( int i = 0; i < n; ++i )
scanf( "%d",&num1[i] );
for( int j = 0; j < m; ++j )
scanf( "%d",&num2[j] );
for( int i = 0,f; i < n - 1;++i )//排序
{
f = 0;
for( int j = 1; j < n - i; ++j )
if( num1[j-1] > num1[j] )
num1[j-1] ^= num1[j] ^= num1[j-1] ^= num1[j],f = 1;
if( !f )
break;
}
for( int i = 0,f; i < m; ++i )//A-B
for( int j = 0; j < n; ++j )
if( num1[j] == num2[i] )
des[j] = 1;
int f = 0;
for( int i = 0; i < n; ++i )//输出
if( !des[i] )
{
printf( "%d ",num1[i] );
f = 1;
}
if( !f )//如果都没有
printf( "NULL" );
puts( "" );
}
return 0;
}
本人还是新手 ,转载请注明来自Lvsi‘s home
浙公网安备 33010602011771号