01-27 03:18
벤치마킹
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 검색완료
- 양양솔비치 뷔페
- 양양솔비치아침
- 오트눈썰매장
- 고마워다음
- 가족소고기외식
- 에어아시아
- 싱가폴중학교수학문제
- 커피쏟음
- 주차넉넉
- 중학교입학수학문제
- 결항
- 결항전문
- 편도수술
- 커피
- DFS
- 푸르지오포레피스
- 홍시스무디
- 종이캐리어
- 사진문자추출하기
- 사진에서 글자추출
- 양양솔비치세프스키친
- 영통외식
- 파이썬
- 당근마켓중고차
- 양양솔비치조식
- 아이혼자다녀옴
- 영통칠프로칠백식당
- 사진문자추출
- 영통역소고기
Archives
- Today
- Total
너와나의 관심사
용액 합성하기 본문
https://www.acmicpc.net/problem/14921
입력중에 두개 더했을때 0에 가장 가까운 두 합을 출력하는..(출력은 절대 값아님)
l 과 r에서 각각 더해 가면서 0에 가까운 출력을 찾는걸로 답을 구함
예제 입력 1
5 -101 -3 -1 5 93
예제 출력 1
2
#include <stdio.h> #include <iostream> #include <vector> #include <string> #include <queue> #include <functional> #include <algorithm> #include <iostream> #include <vector> #include <cstring> using namespace std; #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) #define ABS(a) a<0 ?-(a):a // 절대 값 int N; int input[100001]; int ans = 100000000; int solve(int l, int r){ if (l >= r) return -1; int tmp = abs(input[l] + input[r]); if (abs(input[l] + input[r]) < abs(ans) ) ans = input[l] + input[r]; if (tmp >= abs(input[l] + input[r - 1])){ solve(l, r - 1); } else { solve(l +1 , r); } } int main(void) { int max = 0; int TC = 1; freopen("input12.txt", "r", stdin); setbuf(stdout, NULL); cin >> TC; while (TC--){ ans = 100000000; cin >> N; for (int i = 0; i < N; i++) cin >> input[i]; solve(0, N - 1); cout << ans << endl; } return 0; }
Comments