728x90
728x90

ACM-ICPC 40

백준] 5026 - 박사 과정(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 문제의 개수 N이 주어진다. (1 ≤ N ≤ 1000) 다음 N개 줄에는 "a+b"형식의 덧셈 문제나 "P=NP"가 주어진다. a,b ∈ [0,1000]이며 a와 b는 정수이다. 출력P=NP가 문제인 경우에는 skipped를, 덧셈 문제인 경우에는 덧셈한 결과를 출력한다. 소스코드 #include #include using namespace std; int main(void) { int n; string s; cin >> n; while (n--) { cin >> s; if (s == "P=NP") cout

백준] 10474 - 분수 좋아해?(ACM-ICPC Regional)

시간 제한 : 2초메모리 제한 : 256MB 입력한 줄에 걸쳐 한 테스트 케이스가 입력된다. 각각의 테스트 케이스는 [1, 2^31 - 1]범위의 두 정수가 입력된다. 첫번째 정수는 분자고 두번째는 분모이다. "0 0" 입력이 들어오는 라인에서 입력을 종료한다. 출력각 테스트 케이스에 대해 한 줄에 걸쳐 주어진 입력에 맞는 대분수를 공백토큰으로 구분하여 출력하라. 소스코드 #include using namespace std; int main(void) { int x, y; while (1) { cin >> x >> y; if (x == 0 && y == 0) break; cout

백준] 4613 - Quicksum(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력인풋에 # 이 들어오기 전까지 계속 입력을 받는다. 각각의 패킷은 한줄에 하나씩 입력이 되며 공백으로 시작되거나 끝나지 않으며, 대문자만 입력이 된다. 패킷의 길이는 1~255자이다. 출력각각의 패킷에 따라 한줄에 하나씩 Quicksum 을 출력하라 소스코드 #include #include using namespace std; int main(void) { while (1) { string s; getline(cin, s); if (s == "#") break; int sum = 0, len = s.length(); for (int i = 0; i < len; i++) { if ((char)s[i] == ' '); else sum += (int)(s[i] ..

백준] 9324 - 진짜 메시지(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 100 이하의 테스트 케이스의 개수가 주어진다. 그리고 각 테스트 케이스마다 대문자로만 이루어진 10만자 이하의 문자열 M이 한 줄에 주어진다. (검사해야할 메시지다) 출력테스트 케이스마다 메시지 M이 진짜 메시지면 “OK”를, 가짜 메시지면 “FAKE”를 한 줄에 출력한다. 소스코드 #include #include using namespace std; int main(void) { int t, len; bool real = true; cin >> t; while (t--) { string s; int arr[26] = { 0, }; cin >> s; len = s.length(), real = true; for (int i = 0; i < le..

백준] 5046 - 전국 대학생 프로그래밍 대회 동아리 연합(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력첫째 줄에 참가자의 수 1 ≤ N ≤ 200, 예산 1 ≤ B ≤ 500000, 호텔의 수 1 ≤ H ≤ 18, 고를 수 있는 주의 개수 1 ≤ W ≤ 13이 주어진다. 다음 줄부터 각 호텔의 정보가 주어지며, 호텔의 정보는 두 줄로 이루어져 있다. 첫번째 줄에는 그 호텔의 일인당 숙박비용 1 ≤ p ≤ 10000이 주어지고, 둘째 줄에는 i번째 주에 투숙 가능한 인원 0 ≤ a ≤ 1000이 주어진다. 출력첫째 줄에 대회를 개최할 수 있으면 최소 비용을 출력하고, 없으면 "stay home"을 출력한다. 소스코드 #include using namespace std; int main(void) { int n, b, h, w, min, p, sum = 0; ..

백준] 5086 - 배수와 약수(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 두 자연수로 이루어져 있다. 마지막 줄에는 0이 2개 주어진다. 두 수가 같은 경우는 없다. 출력각 테스트 케이스마다 첫번째 숫자가 두번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. 소스코드 #include using namespace std; int main(void) { int n, m; while (1) { cin >> n >> m; if (n == 0 && m == 0) break; if (m%n == 0) cout

백준] 5724 - 파인만(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 그리드 한 변에 있는 정사각형의 개수 N이 주어진다. (1 ≤ N ≤ 100) 입력의 마지막 줄에는 0이 하나 주어진다. 출력각 테스트 케이스에 대해서, 한 줄에 하나씩 서로 다른 정사각형의 개수를 출력한다. 소스코드 #include using namespace std; int main(void) { int n; while (1) { cin >> n; if (n == 0) break; cout

백준] 4641 - Doubles(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력입력은 여러 개의 테스트 케이스로 주어져 있으며, 입력의 끝에는 -1이 하나 주어진다.각 테스트 케이스는 한 줄로 이루어져 있으며, 2~15개의 서로 다른 자연수가 주어진다. 각 자연수는 100보다 작으며, 리스트의 끝은 0으로 판별한다(0은 리스트에 속하지 않는다). 출력각 테스트 케이스마다 한 줄에 걸쳐 정답을 출력한다. 소스코드 #include #include using namespace std; int main(void) { vector arr; int tmp, cnt = 0, size; while (1) { cin >> tmp; if (tmp == -1) break; else if (tmp == 0) { size = arr.size(); for (..

백준] 9437 - 사라진 페이지 찾기(ACM-ICPC Regional)

시간 제한 : 1초메모리 제한 : 128MB 입력각 테스트 케이스에 대해 두가지 정수 N,P가 주어진다. 4의 배수인 N(4 ≤ N ≤ 1000)은 탐구영역의 전체 페이지 수이며, P(1 ≤ P ≤ N)는 선택된 한 페이지다. 입력의 마지막은 하나의 0만 주어진다. 출력각 테스트 케이스에 대해 사라진 페이지들을 오름차순으로 출력한다. 소스코드 #include using namespace std; int main(void) { int n, p, tmp; while (1) { cin >> n; if (n == 0) break; cin >> p; if (p % 2 == 0) { if (n / 2 >= p) cout

728x90