최대 연속 부분합 찾기(MAXSUM) 입력 출력 및 정답 코드
뿌리튼튼 CS/Algorithm2015. 2. 5. 13:56
틀리기 쉬운 입출력 예제
입력 |
출력 |
7 4 1 2 3 4 3 -1 0 1 8 1 2 3 2 1 2 3 2 6 4 50 2 -10 2 4 4 -5 2 3 -2 4 -1 -2 -3 -4 6 2 3 -4 -1 -1 6 |
10 1 16 56 5 0 6 |
이하는 코드입니다.
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 32 | #include <stdio.h> #define MAX(a, b) (((a) > (b)) ? (a) : (b)) #pragma warning(disable:4996) int main() { int T; scanf("%d\n", &T); for (int i = 0; i < T; i++) { int N; scanf("%d", &N); int inputNum; int maxPartialSum = 0; int partialSum = 0; for (int j = 0; j < N; j++) { scanf("%d", &inputNum); partialSum += inputNum; if (partialSum < 0) { partialSum = 0; continue; } maxPartialSum = MAX(maxPartialSum, partialSum); } printf("%d\n", maxPartialSum); } return 0; } | cs |
'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글
0-1수열(ZEROONE) 정답 코드 (0) | 2015.02.09 |
---|---|
사각형 그리기(DRAWRECT) 정답 코드 (0) | 2015.02.08 |
출전 순서 정하기(MATCHORDER) 정답 코드 (0) | 2015.02.04 |
승률올리기(RATIO) 정답 코드 (0) | 2015.01.28 |
록 페스티벌(FESTIVAL) 정답 코드 (0) | 2015.01.28 |
출전 순서 정하기(MATCHORDER) 정답 코드
뿌리튼튼 CS/Algorithm2015. 2. 4. 13:53
이하는 코드입니다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 | #include <stdio.h> #include <queue> #pragma warning(disable:4996) using namespace std; struct MaxCompare { bool operator() (const int left, const int right) { return left < right; } }; int main() { int C; scanf("%d\n", &C); for (int i = 0; i < C; i++) { int N; scanf("%d", &N); priority_queue<int, vector<int>, MaxCompare> maxHeap_enemy; for (int j = 0; j < N; j++) { int *enemyRating = new int; scanf("%d", enemyRating); maxHeap_enemy.push(*enemyRating); } priority_queue<int, vector<int>, MaxCompare> maxHeap_korea; for (int j = 0; j < N; j++) { int *koreanRating = new int; scanf("%d", koreanRating); maxHeap_korea.push(*koreanRating); } int winCount = 0; while (true) { if (maxHeap_enemy.size() < 1) { break; } // cannot defeat if (maxHeap_enemy.top() > maxHeap_korea.top()) { maxHeap_enemy.pop(); continue; } // can defeat winCount++; maxHeap_enemy.pop(); maxHeap_korea.pop(); } printf("%d\n", winCount); } return 0; } | cs |
'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글
사각형 그리기(DRAWRECT) 정답 코드 (0) | 2015.02.08 |
---|---|
최대 연속 부분합 찾기(MAXSUM) 입력 출력 및 정답 코드 (0) | 2015.02.05 |
승률올리기(RATIO) 정답 코드 (0) | 2015.01.28 |
록 페스티벌(FESTIVAL) 정답 코드 (0) | 2015.01.28 |
Hello World!(HELLOWORLD) 정답 코드 (0) | 2015.01.27 |
승률올리기(RATIO) 정답 코드
뿌리튼튼 CS/Algorithm2015. 1. 28. 16:49
이하는 코드입니다.
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 32 33 34 | #include <stdio.h> #pragma warning(disable:4996) long long N, M; int getWinNum() { int goal = (M * 100) / N + 1; // 엄청 중요한 문장. 이 문장 때문에 2시간을 허비함. if (goal > 99) { return -1; } double ret = (double)(goal * N - 100 * M) / (100 - goal); int flooredRet = (int)ret; if ((ret - flooredRet) > 0.0) { return flooredRet + 1; } return flooredRet; } int main() { int C; scanf("%d\n", &C); for (int i = 0; i < C; i++) { int tmpN, tmpM; scanf("%d %d", &tmpN, &tmpM); N = tmpN; M = tmpM; printf("%d\n", getWinNum()); } return 0; } | cs |
'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글
최대 연속 부분합 찾기(MAXSUM) 입력 출력 및 정답 코드 (0) | 2015.02.05 |
---|---|
출전 순서 정하기(MATCHORDER) 정답 코드 (0) | 2015.02.04 |
록 페스티벌(FESTIVAL) 정답 코드 (0) | 2015.01.28 |
Hello World!(HELLOWORLD) 정답 코드 (0) | 2015.01.27 |
외발뛰기(JUMPGAME) 정답 코드 (0) | 2015.01.27 |
록 페스티벌(FESTIVAL) 정답 코드
뿌리튼튼 CS/Algorithm2015. 1. 28. 10:58
이하는 코드입니다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | #include <stdio.h> #pragma warning(disable:4996) #define MIN(a, b) (((a) < (b)) ? (a) : (b)) int N, L; double board[1001]; double cache[1001]; double getMinAverage() { double minAverage = 100.0; for (int i = 0; i <= N - L; i++) { double sum = 0.0; for (int j = i; j < i + L - 1; j++) { sum += board[j]; } cache[i] = 100.0; for (int j = i + L - 1; j < N; j++) { sum += board[j]; double partialAverage = sum / (j - i + 1); cache[i] = MIN(cache[i], partialAverage); } minAverage = MIN(minAverage, cache[i]); } return minAverage; } int main() { int C; scanf("%d\n", &C); for (int i = 0; i < C; i++) { scanf("%d %d", &N, &L); for (int j = 0; j < N; j++) { scanf("%lf", &board[j]); } printf("%.11f\n", getMinAverage()); } return 0; } | cs |
'뿌리튼튼 CS > Algorithm' 카테고리의 다른 글
출전 순서 정하기(MATCHORDER) 정답 코드 (0) | 2015.02.04 |
---|---|
승률올리기(RATIO) 정답 코드 (0) | 2015.01.28 |
Hello World!(HELLOWORLD) 정답 코드 (0) | 2015.01.27 |
외발뛰기(JUMPGAME) 정답 코드 (0) | 2015.01.27 |
조세푸스 문제(JOSEPHUS) 정답 코드 (1) | 2015.01.26 |