In i passi
1. Pie per sei
Formulazione di u prublema
U limitu di tempu hè di 4 seconde.
Avete una torta. Quandu si vede da sopra, a torta hà a forma di un poligonu (strictamente) cunvessu. Vi sò datu e coordenate di i vertici in X è Y interi.
Avete cinque amichi. Vulete dividite a torta in sei pezzi di uguali area (ma micca necessariamente a stessa forma). Di sicuru, qualcunu pò fà in cinque cuts, ma solu un prufessore pò fà in trè cuts.
Truvate trè tagli in linea dritta attraversu un puntu chì dividerà a torta in sei parti uguali. Stampa {x, y, d1, d2, d3}, induve (x, y) hè u puntu cumunu di tutti i trè tagli, è d1, d2, d3 sò l'anguli di direzzione di i tagli in radianti.
DéfintionClasse: CakeForSix
Metudu: cut
Parametri: int[], int[] Ritorna: double[] Signatura di u metudu: double[] cut(int[] x, int[] y)
(assicuratevi chì u vostru metudu hè publicu)
Noti
- A direzzione pusitiva longu l'assi x hè 0 (radiani), a direzzione pusitiva longu l'assi y hè pi/2 (radiani).
- Un cut in a direzzione d hè simile à un cut in a direzzione pi * k + d per qualsiasi nternu k.
- Pudete pruduce ogni direzzione, ùn anu micca esse da [0, pi).
- U graduatore hà da calculà l'area di i vostri sei pezzi di torta in doppia. A risposta serà accettata se a diferenza relativa o assoluta trà elli hè menu di 10 ^ (-4).
- Più precisamente, lasciate X è Y esse u più chjucu è più grande di i vostri sei spazii calculati da u graduatore. Allora a vostra risposta serà accettata se Y
- (A versione uriginale di u prublema hà utilizatu una precisione di 1e-7 invece di 1e-4. Per risolve stu prublema in l'archiviu, u limitu di precisione hè stata ridutta per via di a prisenza di casi di chjamà chì prubabilmente facenu u prublema insolubile cù una precisione. di 1e-7. In un mondu ideale, i limiti ùn permettenu micca tali casi è anu sempre bisognu di alta precisione, cusì risolve u prublema cù qualchì ottimisazione numerica generale ùn hè micca faciule.)
Restrictions
- x cuntene da 3 à 50 elementi inclusi.
- y cuntene u listessu numeru di elementi cum'è x.
- tutte e coordenate trà 0 è 10 inclusi
- x è y definiscenu un poligonu cunvessu in una direzzione antiurariu.
Uriginale in inglese
Dichjarazione di Prublema
U limitu di tempu hè di 4 seconde.
Avete una torta. Vistu da sopra, a torta hè un poligonu (strictamente) cunvessu. Vi sò datu e coordenate di i so vertici in l'int[]sx è y.
Avete cinque amichi. Avà vulete taglià a torta in sei pezzi di uguali area (ma micca necessariamente uguali forma). Di sicuru, qualcunu pò fà questu in cinque tagli - ma solu un veru prufessore pò fà in trè!
Truvate trè taglii dritti chì passanu per u listessu puntu chì taglianu a torta in sei parti ugualmente grande. Ritorna {x, y, d1, d2, d3}, induve (x, y) hè u puntu cumunu di i trè tagli, è d1, d2, d3 sò e so direzzione in radianti.
Défintion
Classe: CakeForSix
Metudu: cut
Parametri: int[], int[] Ritorna: double[] Signatura di u metudu: double[] cut(int[] x, int[] y)
(assicuratevi chì u vostru metudu hè publicu)
Fonti
- A direzzione pusitiva longu l'assi x hè 0 (radiani), a direzzione pusitiva longu l'assi y hè pi/2 (radiani).
— Un tagliu in a direzzione d hè u listessu cum'è un tagliu in a direzzione pi*k+d per qualsiasi nternu k.
- Pudete rinvià ogni direzzione, ùn deve micca esse da [0,pi).
- U graduatore hà da calculà l'area di i vostri sei pezzi di torta in doppia. A risposta serà accettata se a diferenza relativa o assoluta trà elli hè menu di 10 ^ (-4).
- Più precisamente, lasciate X è Y esse u più chjucu è u più grande di i vostri sei spazii, cum'è calculatu da u graduatore. Allora, a vostra risposta serà accettata se Y < max( X + 10^(-4), X * (1+10^(-4)) ).
- (A versione uriginale di u prublema usava a precisione 1e-7 invece di 1e-4. Per risolve stu prublema in l'archiviu, u limitu di precisione hè statu ridutta per via di l'esistenza di casi di sfida chì più prubabilmente facenu u compitu insolubile cù precisione 1e-7. In un mondu ideale, e restrizioni ùn permettenu micca tali casi è anu sempre bisognu di alta precisione, perchè ùn hè micca faciule di risolve u prublema per via di qualchì ottimisazione numerica generale.)
Vincite
— x avarà trà 3 è 50 elementi, inclusi.
- y averà u listessu numeru di elementi cum'è x.
- Tutte e coordenate seranu trà 0 è 10,000, inclusi.
- x è y descriveranu un poligonu cunvessu in l'ordine antiorariu.
esempi
0)
{0, 20, 30, 50, 30, 20}
{10, 0, 0, 10, 20, 20}
Ritorna:
{24.999999999437453, 9.999999999500002, 0.0, 0.7266423406817211, 2.4149503129080787 }
Un esagonu simmetricu ma irregulare. A risposta di l'esempiu currisponde à u tagliu in a mità orizzontalmente è fà dui altri taglii in u centru chì divide ogni pezzu in trè parte.
1)
{0, 1000, 0}
{0, 0, 1000}
Ritorna:
{333.3333333331763, 333.3333333332546, 0.7853981633986264, 2.0344439357948154, 2.6779450445891753 }
Triangulu drittu. In novu, pudemu principià cù unu di trè taglii longu l'assi di simetria.
2)
{40, 70, 90, 90, 50}
{30, 20, 40, 100, 60}
Ritorna:
{69.79517771922892, 52.77575974637605, 2.0616329654335885, 3.637826104091601, 4.32123485812475 }
Pentagonu irregolare.
3)
{300, 400, 300, 200}
{500, 600, 700, 600}
Ritorni: {299.99999999974995, 599.9999999995, 0.0, 1.107148717794088, 2.034443935795705}
Un quadru girava 45 gradi.
[
Solu l'utilizatori registrati ponu participà à l'indagine.
Aghju risoltu u prublema per
-
in menu di 10 minuti
-
10-30 minuti
-
30-60 minuti
-
L'ora di 1-2
-
in più di 2 ore
-
altru
42 utilizatori anu vutatu. 47 utilizatori si sò astenuti.
Source: www.habr.com