Mảnh vỡ thủy tinh
Submit solution
Points:
1 (partial)
Time limit:
1.0s
Memory limit:
977M
Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG
Pax vô tình làm rơi một chiếc cốc thủy tinh , chiếc cốc thuỷ tinh đã bị vỡ ra thành n mảnh .
- Coi nơi chiêc cốc bị rơi có tọa độ là O( 0, 0 ) ,và ác mảnh vỡ có tọa độ là x , y .
Pax tò mò muốn xem tổng khoảng cách của các mảnh vỡ nhưng đã bỏ xót một số mảnh vỡ các bạn hãy tính tổng khoảng cách từ nơi các mảnh vỡ từ nơi chiếc cốc rơi và khoảng các của mảnh vỡ bị bắn xa nhất hộ Pax nhé .
Input :
Dòng đầu tiên là 1 số nguyên n (1 <= n <= 10^5 )
n dòng tiếp theo là 2 số thực là tọa độ của các mảnh vỡ (0 < = x, y <= 100)
Output :
Dòng đầu là kết quả của 1 số thực là tổng khoảng cách của các mảnh vỡ
Dòng tiếp theo là khoảng cách của mảnh vỡ xa nhất
Lưu ý : Để tăng tính chính xác các bạn hãy dùng double và lấy chính xác 3 chữ số sau dấu phẩy
Comments
// the code doesn't work, can anyone find the mistake(s) ? Thank you
include<iostream>
include<math.h>
include <iomanip>
using namespace std;
double Distance(double x1, double y1, double x2, double y2){ return sqrt(pow((x2 - x1), 2) + pow((y2 - y1), 2)); } int main(){ int n; cin >> n; double a[n], b[n]; for (int i = 0; i < n; i++){ cin >> a[i] >> b[i]; } double temp, max = Distance(a[0], b[0], a[1], b[1]); double sum = max; for (int i = 0; i < n-1 ; i++){ for (int j = i + 1; j < n; j++){ temp = Distance(a[i], b[i], a[j], b[j]); // cout << i << ' ' << j << ' ' << fixed<<setprecision(3)<<temp << endl; sum += temp; if (max < temp){ max = temp; } } } cout << fixed<<setprecision(3)<<sum << endl; cout << fixed<<setprecision(3)<<max;
}