#include <stdio.h>
#include <stdlib.h>
정렬
int compare(const void *a,const void *b) {
    long long A=*(long long*)a;
    long long B=*(long long*)b;
    if(A>B) return 1;
    else return -1;
}

long long num[500001];
long long num_m[500001];

//m에서 교집합 찾음
int binary(long long a,int size) {
    int start=0;
    int end=size-1;
    
    while(start<=end) {
        int mid=(start+end)/2;
        if(num_m[mid]==a) {
            return 1;
        }
        if(num_m[mid]<a) {
            start=mid+1;
        } else end=mid-1;
    }
    return 0;
}
int main() {
    int n,m;
    int cnt=0;
    scanf("%d %d",&n, &m);
    for(int i=0;i<n;i++) {
        scanf("%lld",&num[i]);
    }
    for(int i=0;i<m;i++) {
        scanf("%lld",&num_m[i]);
    }
    qsort(num,n,sizeof(long long),compare);
    qsort(num_m,m,sizeof(long long),compare);
    
    for(int i=0; i<n; i++){
        if(!binary(num[i],m)) {
            cnt++;
        }
    }
    if(cnt==0){
        printf("0");
    }
    if(cnt>0){
        printf("%d\n",cnt);
        for(int i=0; i<n; i++) {
            if(!binary(num[i],m)) {
                printf("%lld ",num[i]);
            }
        }
    }
    return 0;
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: