Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.5 kB
1
Indexable
Never
package Point_of_Balance;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Solution {
	public static void main(String[] args) throws FileNotFoundException {
		System.setIn(new FileInputStream("input.txt"));
		Scanner sc = new Scanner(System.in);
		for (int tc = 1; tc <= 10; tc++){
			int n = sc.nextInt();
			int [] mas = new int [n];
			int [] loc = new int [n];
			double [] ans = new double [n];
			double x = 0;
			double left = 0;
			double right = 0;
			double mid = 0;
			double f1 = 0;
			double f2 = 0;
			for (int i = 0; i < n; i++) {
				loc[i] = sc.nextInt();
			}
			for (int i = 0; i < n; i++) {
				mas[i] = sc.nextInt();
			}
			for (int i = 0; i < n-1; i++) {
				left = loc[i];
				right = loc[i+1];
				x = 1.0;
				while(x>=0.0000000001){
					f1 = 0.0;
					f2 = 0.0;
					mid = (right + left)/2;
					ans[i] = mid;
					for (int k = 0; k <= i ; k++) {
						f1 = f1 + mas[k]/((ans[i]-loc[k])*(ans[i]-loc[k]));
					}
					for (int k = n-1; k > i ; k--) {
						f2 = f2 + mas[k]/((ans[i]-loc[k])*(ans[i]-loc[k]));
					}
					if(f1==f2){
						break;
					}else if(f1 > f2){
						x = right - left;
						left = mid;
					}else{
						x = right - left;
						right = mid;
					}
				}
			}
			System.out.print("#"+tc+" ");
			for (int i = 0; i < n-1; i++) {
				System.out.printf("%.10f",ans[i]);
				System.out.print(" ");
			}
			System.out.println();
		}
	}
}


////


2
1 2 1 1
2
1 2 1 1000
2
457 468 333 321
3
1 2 3 1 2 1
4
2 3 5 7 3 2 7 5
5
3 11 12 19 29 542 661 450 521 366	
6
42 75 88 94 113 144 669 551 355 344 294 155
7
62 86 279 323 363 516 579 810 749 736 297 136 107 52
8
10 34 64 73 93 97 101 122 466 463 441 373 315 292 225 83
10
9 14 38 39 48 73 179 190 207 302 560 497 640 722 437 259 449 470 709 520 
////


#1 1.5000000000 
#2 1.0306534300 
#3 462.5504629633 
#4 1.4060952085 2.5939047915 
#5 2.5328594461 3.7271944335 6.0999536409 
#6 6.3428568767 11.5477377494 15.9641592997 24.9267991616 
#7 57.8805685416 81.8651598883 91.0573691382 105.0835650491 133.2934094882 
#8 74.2211477711 190.6837563313 305.8269181686 348.3304429927 470.2694219293 555.4943093854 
#9 21.5171374463 47.9890597763 68.6536668433 82.9131954024 95.0052272762 99.1999097771 116.4978330952 
#10 11.5573600056 24.0238341337 38.4847676134 44.6137453708 64.7500445424 126.9908128981 184.3221650927 197.9760596291 266.0574653676