페이지

2295번: 세 수의 합

https://www.acmicpc.net/problem/2295


#include<stdio.h>
#include<algorithm>
#define MAX 1010
int data[MAX], data2[MAX*MAX], cnt, N;
int main()
{
    int i, j;
    scanf("%d", &N);
    for (i = 1; i <= N; i++)
    {
        scanf("%d", &data[i]);
    }
    std::sort(data + 1, data + 1 + N);
    for (i = 1; i <= N; i++)
    {
        for (j = i; j <= N; j++)
        {
            data2[++cnt] = data[i] + data[j];
        }
    }
    std::sort(data2 + 1, data2 + 1 + cnt);
    for (i = N; i >= 1; i--)
    {
        for (j = i; j >= 1; j--)
        {
            if (std::binary_search(data2 + 1, data2 + cnt + 1, data[i] - data[j]))
            {
                printf("%d", data[i]);
                break;
            }
        }
        if (j != 0)
        {
            break;
        }
    }
    return 0;
}

댓글 없음 :

댓글 쓰기