1 solutions
-
0
C++ :
#include <cstdio> #include <cstring> #include <algorithm> using namespace std ; void f( int a[] , int n , int b[] , int m ) { int i = 0 , j = 0 ; bool first = true ; while( i < n && j < m ) { if( a[i] == b[j] ) { printf("%d " , a[i] ) ; i ++ ; j ++ ; } else if( a[i] > b[j] ) j ++ ; else i ++ ; } } void g( int a[] , int n , int b[] , int m ) { int i = 0 , j = 0 ; bool first = true ; while( i < n && j < m ) { if( a[i] == b[j] ) { printf("%d " , a[i] ) ; i ++ ; j ++ ; } else if( a[i] > b[j] ){ printf("%d " , b[j] ) ; j ++ ; } else { printf("%d " , a[i] ) ; i ++ ; } } while( i < n ) { printf("%d " , a[i++] ) ; } while( j < m ) { printf("%d " , b[j++] ) ; } } void k( int a[] , int n , int b[] , int m ) { for( int i = 0 ; i < n ; i ++ ) { int p = upper_bound( b , b + m , a[i] ) - b ; if( p > 0 && b[p-1] == a[i] ) continue ; printf("%d " , a[i] ) ; } } int main() { int n , m ; int a[1010] , b[1010] ; while( ~scanf("%d" , &n ) ) { for( int i = 0 ; i < n ; i ++ ) scanf("%d" , &a[i] ) ; sort( a , a+n ) ; scanf("%d" , &m ) ; for( int i = 0 ; i < m ; i ++ ) scanf("%d" , &b[i] ) ; sort( b , b+m ) ; f(a,n,b,m) ; printf("\n") ; g(a,n,b,m) ; printf("\n") ; k(a,n,b,m) ; printf("\n") ; } return 0 ; }
- 1
Information
- ID
- 16303
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By