#include <stdio.h> int ability[50][2]={0}; int answer[10000]={0}; void line(int n); //내림차순 정렬 int cal(int n); int main(void) { int t, n, i, j; scanf(" %d", &t); for(i=0; i<t; i++) { scanf(" %d", &n); for(j=0; j<n; j++) //KAIST { scanf(" %d", &ability[j][0]); } for(j=0; j<n; j++) //Postech { scanf(" %d", &ability[j][1]); } line(n); answer[i]=cal(n); } for(i=0; i<t; i++) printf("%d\n", answer[i]); return 0; } void line(int n) { int i, j, max=0, temp; for(i=0; i<(n-1); i++) { max=i; for(j=i+1; j<n; j++) { if(ability[max][0]<ability[j][0]) max=j; } if(max!=i) { temp=ability[i][0]; ability[i][0]=ability[max][0]; ability[max][0]=temp; } } for(i=0; i<(n-1); i++) { max=i; for(j=i+1; j<n; j++) { if(ability[max][1]<ability[j][1]) max=j; } if(max!=i) { temp=ability[i][1]; ability[i][1]=ability[max][1]; ability[max][1]=temp; } } } int cal(int n) { int k=0, p=0, sum=0; while(k<n && p<n) { if(ability[k][0]>ability[p][1]) { sum+=ability[k][0]; k++; p++; } else p++; } return sum; }
2018.06.09 11:18
정올 - 실전대비 - Duel(1312)
조회 수 47 추천 수 0 댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 글쓰기는 하루 5개, 댓글은 10개만 가능합니다. | 좋은아빠되기 | 2019.02.15 | 298 |
공지 | 키보드 화살표값 출력 | 좋은아빠되기 | 2016.11.19 | 1075 |
공지 | 원하는 좌표에 값 출력하기 | 좋은아빠되기 | 2016.11.19 | 2390 |
공지 | Python(파이썬) 학습 자료 PDF 1 | 좋은아빠되기 | 2014.12.10 | 10268 |
공지 | dev C++ 텍스트 색상변경 WinApi사용(textcolor 대용) | 좋은아빠되기 | 2014.06.07 | 4710 |
공지 | DEV-C++ 기본 코드 | 좋은아빠되기 | 2013.06.19 | 8234 |
공지 | 무료 C++ 컴파일러(윈도우용) DEV-C++ | 좋은아빠되기 | 2013.06.18 | 18945 |
공지 | 이클립스 C++ 설치 파일들 | 좋은아빠되기 | 2013.06.18 | 37837 |
6 | 3의배수를 출력하는 프로그램 | 그냥학생 | 2014.02.08 | 5570 |
5 | 정수를 입력받아서, 두수의 뺄셈과 곱셈의 결과 출력 | 양태관 | 2013.06.22 | 6630 |
4 | 아스키코드 값으로 문자 출력 | 양태관 | 2013.06.22 | 7315 |
3 | 입력받은 문자열중에서 숫자만 골라 더한값을 출력하기 | killerjack | 2014.04.05 | 10219 |
2 | 두 정수를 나누어서 몫과 나머지 출력 | 양태관 | 2013.06.22 | 26473 |
1 | 세 개 정수중 최댓값 최솟값 함수이용해서 구하기 | killerjack | 2014.02.15 | 251076 |