1429: 화살 이 헛 되 지 않 음
4828 단어 acm 프로 그래 밍
Description
JH 는 10 년 동안 열심히 연습 한 끝 에 마침내 신 궁 수가 되 었 다. 산 을 내 려 오기 전에 큰 사형 YZ 는 안심 하지 못 하고 그 를 시험 하려 고 했다. 그 에 게 일정한 시간 t 만 주 고 n 개의 화살 을 주 었 다. 결국 그의 행동 에 따라 그 가 내 려 갈 수 있 는 지 를 고려 했다.화살 을 한 번 쏠 때마다 YZ 는 그 에 게 4 가지 성적 (우, 량, 중, 차) 을 주 었 다. JH 는 세 가지 활 을 당 기 는 것 과 조준 시간 a, b, c (a > = b > = c) 가 각각 우, 량, 중 등급 을 받 을 수 있 고 활 을 당 기지 않 으 면 차 (과녁 에 맞지 못 함) 를 받 을 수 밖 에 없다.
JH , ( ) , 。
JH , Oh,my
Input
T :
, n, n 。(0<n<=1000) n , a,b,c, 。(0<c<=b<=a<=1000)
t, JH t(0<=t<=1e6)
Output
각 조 의 입력 에 대해 JH 가 화살 을 헛 되 게 쏘 지 않 으 면 하나의 숫자 x 를 출력 하여 가장 많이 얻 을 수 있 는 우수한 수량 을 나타 낸다.못 하면 Oh, my god 를 출력 합 니 다!Sample Input
3 1 3 2 1 1 2 3 2 1 3 2 1 4 2 3 2 1 3 2 1 1 Sample Output
0 1 Oh,my god!
부호 블록
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner cn = new Scanner(System.in);
int t = cn.nextInt();
while (t-- > 0) {
int n = cn.nextInt();
int[][] a = new int[n][3];
int sum = 0;
for (int i = 0; i < n; i++) {
a[i][0] = cn.nextInt();
a[i][1] = cn.nextInt();
a[i][2] = cn.nextInt();
sum += a[i][2];
}
for (int i = 0; i < n - 1; i++) {
for (int j = i; j < n; j++) {
if (a[i][0] - a[i][2] > a[j][0] - a[j][2]) {
int temp[] = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
int k = cn.nextInt();
if (sum > k) {
System.out.println("Oh,my god!");
} else {
int count = 0, ss = 0;
for (int i = 0; i < n; i++) {
ss += a[i][0] - a[i][2];
if (ss <= k - sum)
count++;
else
break;
}
System.out.println(count);
}
}
}
}