#include <stdio.h>
#include <unistd.h>
#include <string.h> // memset
int DupliCheck(char* fileName);
int main(void) {
    char fileName[10] = { 0, };
    int dupl = -1; // 중복값
    int num = 0;
    printf("파일 이름 입력 : ");
    scanf("%s", fileName);
 
    int existYn = access(fileName, 0);
 
    if (existYn != 0) {
        printf("해당 파일이 없습니다.\n");
        return 0;
    }
    else {
        // printf("해당 파일을 열었습니다.\n");
        dupl = DupliCheck(fileName); // 중복 체크
        if (dupl == -1) {
            printf("Correct\n");
        }
        else {
            printf("Incorrect.%d is duplicated.\n", dupl);
        }
    }
    return 0;
}
int DupliCheck(char* fileName) {
    int dupl = -1; // 중복값
    int num = 0; // 파일에서 읽어올 값
    int cnt = 0; // 비교값 개수
    int idx = 0;
    int bit = 0;
    int arr[50];
    int i = 0;
    FILE* file = NULL; // 파일 구조체 포인터 생성
     // r :읽기 형식. file :스트림 포인터 리턴 값. stdin :파일 안에 내용 read 해서 전달해 주는 것
    file = freopen(fileName, "r", stdin);
    scanf("%d", &cnt);
    memset(arr, 0, sizeof(arr)); // 초기화
    for (i = 0; i < cnt; i++) {
        scanf("%d", &num);
        idx = num / 32; // int : 32bit
        bit = 1 << (num % 32);
        if (arr[idx] & bit) {
            dupl = num;
            break;
        }
        else {
            arr[idx] += bit;
        }
    }
    fclose(file);
    return dupl;
}