import sys input = sys.stdin.readline N = int(input()) A= [] B = [] C = [] D = [] for _ in range(N): a,b,c,d = map(int,input().split()) A.append(a) B.append(b) C.append(c) D.append(d) part_one = {} for a in A: for b in B: if part_one.get(a+b): part_one[a+b] += 1 else: part_one[a+b] = 1 answer = 0 for c in C: for d in D: temp_sum = -(c+d) if part_one.get(temp_sum): answer += part_one[temp_sum] print(answer)
# skrud3021 님 코드 공부한거 N = int(input()) A,B,C,D = [],[],[],[] for _ in range(N): a,b,c,d = map(int,input().split()) A.append(a) B.append(b) C.append(c) D.append(d) ab_sum = [i+j for i in A for j in B] ab_sum.sort() ab_sum.append(2<<29+1) cd_sum = [i+j for i in C for j in D] cd_sum.sort(reverse=True) cd_sum.append(2<<29+1) ab_ind = 0 cd_ind = 0 result = 0 while ab_ind <N**2 and cd_ind<N**2: sum_mid = ab_sum[ab_ind] + cd_sum[cd_ind] if sum_mid > 0: cd_ind += 1 elif sum_mid < 0: ab_ind += 1 else: ab_start_ind = ab_ind cd_start_ind = cd_ind ab_value = ab_sum[ab_ind] cd_value = cd_sum[cd_ind] while ab_value == ab_sum[ab_ind]: ab_ind += 1 while cd_value == cd_sum[cd_ind]: cd_ind += 1 result = result + (ab_ind-ab_start_ind)*(cd_ind-cd_start_ind) print(result)
'알고리즘 > 백준_복기_미완료' 카테고리의 다른 글
[BOJ/백준] 7579 앱 (0) | 2021.05.04 |
---|---|
[BOJ/백준] 6209 제자리 멀리뛰기 (0) | 2021.05.04 |
[BOJ/백준] 6987 월드컵 (0) | 2021.05.03 |
[BOJ/백준] 6236 용돈 관리 (0) | 2021.05.03 |
[BOJ/백준] 6137 문자열 생성 (0) | 2021.05.03 |