페이지

5624번: 좋은 수 - 최적화필요

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


#include<stdio.h>
int mp[400001];
int res, a[5000], ck[5000], n;
int main() {
    scanf("%d", &n);
    for (int i = 0; i < n; i++) scanf("%d", a + i);
    for (int i = 0; i < n; i++)
        for (int j = i; j < n; j++) mp[a[i] + a[j] + 200000]++;
    for (int i = n - 1; i >0; i--) {
        for (int j = 0; j <= i; j++) mp[a[i] + a[j] + 200000]--;
        for (int j = i; j <n; j++) ck[j] |= mp[a[j] - a[i - 1] + 200000];
    }
    for (int i = 0; i < n; i++) if (ck[i]) res++;
    printf("%d", res);
    return 0;
}

댓글 없음 :

댓글 쓰기