Ini merupakan variasi soal Porseni V Imilkom USU 2010, di mana yang diminta pada soal ini hanya luas lingkaran paling dalam, tidak semua lingkaran seperti yang diminta pada soal untuk Porseni.
Diberikan masukan S yaitu panjang sisi persegi dan N yaitu banyaknya persegi dan lingkaran, hitung luas lingkaran yang terletak paling dalam. Sebagai contoh, jika diberikan S = 10 dan N = 1, maka akan terdapat 1 persegi dan lingkaran seperti berikut:

Luas yang akan dihitung adalah bagian yang berwarna biru. Dari gambar di atas, diameter lingkaran sama dengan panjang sisi persegi, yaitu 10, sehingga luas lingkaran berwarna biru tersebut adalah 78.539816 (luas lingkaran = π r2 = ¼ π d2, di mana π = 3.1415926535897932).
Jika diberikan S = 10 dan N = 2, maka terdapat 2 persegi dan lingkaran seperti berikut:

Luas yang akan dihitung adalah bagian yang berwarna hijau.
Input:
Input diawali oleh T (1 <= T <= 1000) yakni banyaknya test case.
T baris berikutnya (di mana setiap baris merupakan sebuah test case) berisi dua bilangan bulat S (1 <= S <= 10000) dan N (1 <= N <= 100).
Output:
Untuk setiap test case, tampilkan luas lingkaran yang diminta (lingkaran paling dalam) dalam 6 angka desimal. Lakukan pembulatan bila perlu.
Contoh input:
3
10 1
10 2
14 4
Contoh output:
78.539816
39.269908
19.242255
———-
Untuk N = 1, akan terdapat persegi dan lingkaran sebagai berikut:

Luas yang akan dihitung adalah bagian yang berwarna biru. Dari gambar di atas, jari-jari lingkaran (R1) adalah ½ panjang sisi persegi (S1), yaitu 5, sehingga luas lingkaran (L) tersebut adalah sebagai berikut:
Jika N = 2, maka akan terdapat 2 buah persegi dan 2 buah lingkaran seperti berikut:

Luas yang akan dihitung adalah bagian yang berwarna hijau. Untuk itu, kita perlu mengetahui jari-jari atau diameter lingkaran berwarna hijau. Perhatikan gambar berikut:

Jari-jari lingkaran berwarna hijau adalah R2. Selanjutnya perhatikan gambar berikut:

Dari gambar tersebut, diperoleh persamaan berikut:
Karena kita sudah memiliki R1 (yaitu 5), maka R2 bisa diperoleh:
Sehingga luas lingkaran berwarna hijau adalah:
Untuk N selanjutnya (2, 3, 4, …), dapat diturunkan rumus yang sama:
Karena sudah memperoleh jari-jari, luas lingkaran dapat dihitung.
Berikut ini merupakan contoh solusi dalam bahasa Java:
import java.util.Scanner;
public class F {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int nTC = sc.nextInt();
while (nTC-- > 0) {
int S = sc.nextInt();
int N = sc.nextInt();
double R = 0.5 * (double) S; // 1 persegi dan lingkaran
for (int i = 2; i <= N; i++) {
R = R * Math.sqrt(0.5); // 2, 3, 4, ... persegi dan lingkaran
}
double L = Math.PI * Math.pow(R, 2);
System.out.println(String.format("%.6f", L));
}
}
}
Input dan output yang digunakan oleh juri bisa dilihat di sini.









Komentar Terkini