답안 #746197

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
746197 2023-05-21T21:18:36 Z rahulverma Balloons (CEOI11_bal) Java 11
10 / 100
2000 ms 25452 KB
import java.io.*;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;

public class bal {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		int[] coord = new int[n];
		int[] maxRad = new int[n];
		double[] ans = new double[n];
		for(int i = 0; i < n; i++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			coord[i] = Integer.parseInt(st.nextToken());
			maxRad[i] = Integer.parseInt(st.nextToken());
		}
		ans[0] = maxRad[0];
		Stack<Integer> stack = new Stack<Integer>();
		stack.add(0); // indexes in the stack
		for(int i = 1; i < n; i++) {
			double pos = maxRad[i];
			while(!stack.isEmpty()) {
				int top = stack.peek();
				double distance = dist(coord[top], ans[top], coord[i]);
				if(distance < maxRad[i]) {
					stack.pop();
					pos = distance;
				}
				else {
					pos = maxRad[i];
					break;
				}
			}
			ans[i] = pos;
			stack.add(i);
		}
		for(int i = 0; i < n; i++) {
			System.out.format("%.3f", (round(ans[i], 3)));
			System.out.println();
		}
	}
	public static double dist(int x1, double r1, int x2) {
		double x_1 = x1;
		double x_2 = x2;
		return (x_1 - x_2) * (x_1 - x_2) / (4*r1);
	}
	private static double round(double value, int places) {
	    if (places < 0) throw new IllegalArgumentException();

	    BigDecimal bd = new BigDecimal(Double.toString(value));
	    bd = bd.setScale(places, RoundingMode.HALF_UP);
	    return bd.doubleValue();
	}

}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 76 ms 9416 KB 4th numbers differ - expected: '1.8420000000', found: '87.0000000000', error = '85.1580000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 78 ms 9392 KB 2 numbers
# 결과 실행 시간 메모리 Grader output
1 Incorrect 179 ms 10116 KB 3rd numbers differ - expected: '0.0420000000', found: '3.0000000000', error = '2.9580000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 539 ms 18868 KB 6th numbers differ - expected: '116.0020000000', found: '117.0000000000', error = '0.9980000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1541 ms 21360 KB 11th numbers differ - expected: '201.0010000000', found: '202.0000000000', error = '0.9990000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1689 ms 22660 KB 5th numbers differ - expected: '15395.0000000000', found: '15396.0000000000', error = '1.0000000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1927 ms 23964 KB 14th numbers differ - expected: '7919.0000000000', found: '7920.0000000000', error = '1.0000000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 1956 ms 24128 KB 5th numbers differ - expected: '5054.0000000000', found: '5055.0000000000', error = '1.0000000000'
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2062 ms 24940 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 2056 ms 25452 KB Time limit exceeded
2 Halted 0 ms 0 KB -