Statistics

Problem Statement for "Parallelograms"

Problem Statement

A parallelogram is a quadrilateral with two sets of parallel sides.

You are given three distinct points A(xA,yA), B(xB,yB) and C(xC,yC) in the plane.

Consider all non-degenerate parallelograms such that A, B, and C are three of its vertices. Your method should return the difference between the largest and the smallest possible perimeter of such a parallelogram. If there is no such parallelogram, return -1 instead.

Definition

Class:
Parallelograms
Method:
getDifference
Parameters:
int, int, int, int, int, int
Returns:
double
Method signature:
double getDifference(int xA, int yA, int xB, int yB, int xC, int yC)
(be sure your method is public)

Constraints

  • xA, yA, xB, yB, xC and yC will be between -5,000 and 5,000, inclusive.
  • A, B, and C will be three different points.

Examples

  1. 0

    0

    0

    1

    1

    0

    Returns: 0.8284271247461898

    For this input there are three possible parallelograms, with the fourth vertex at (1,1), (1,-1), or (-1,1). In the first case, we get a 1 by 1 square with a perimeter of 4. In both the second and third cases, we get a parallelogram with side lengths 1 and sqrt(2), with a perimeter of approximately 4.828427.

  2. 0

    0

    4

    0

    0

    3

    Returns: 4.0

    In this case the largest possible perimeter is 18 and the smallest possible perimeter is 14.

  3. 0

    0

    1

    0

    47

    0

    Returns: -1.0

    No parallelogram can have three vertices on the same line. Therefore, the answer for this test case is -1.

  4. 1

    2

    3

    4

    8

    7

    Returns: 11.547796284592874

  5. 436

    235

    -4626

    -524

    436

    -2355

    Returns: 5585.947241185979

  6. -5000

    -5000

    5000

    5000

    5000

    -5000

    Returns: 8284.271247461904

  7. -5000

    -5000

    -3403

    -2416

    -819

    1765

    Returns: 9830.120446871433

    Almost, but not entirely, a straight line.

  8. 970

    -668

    880

    -902

    910

    -824

    Returns: -1.0

  9. 695

    -774

    811

    -734

    840

    -724

    Returns: -1.0

  10. 729

    -894

    945

    -882

    549

    -904

    Returns: -1.0

  11. -39

    -388

    45

    -223

    73

    -168

    Returns: -1.0

  12. 664

    882

    925

    987

    1186

    1092

    Returns: -1.0

  13. 674

    -822

    606

    -954

    538

    -1086

    Returns: -1.0

  14. -399

    312

    -237

    396

    -75

    480

    Returns: -1.0

  15. 597

    616

    529

    452

    461

    288

    Returns: -1.0

  16. 332

    342

    293

    159

    345

    403

    Returns: -1.0

  17. -4693

    1479

    -266

    -2950

    2041

    -2986

    Returns: 11545.015116559363

  18. 4135

    -2541

    3105

    -4276

    -1711

    -79

    Returns: 8740.926220856029

  19. -433

    4456

    -560

    4345

    -4340

    3888

    Returns: 7558.801566422929

  20. 4688

    -3938

    -2878

    -2550

    3001

    -4997

    Returns: 11400.832936896662

  21. 1536

    595

    3564

    3396

    161

    -81

    Returns: 6665.975491806637

  22. -4663

    -4544

    4287

    192

    -3426

    -3873

    Returns: 17437.095760718257

  23. 4306

    658

    -2367

    -3868

    -3919

    -4926

    Returns: 16126.19444457268

  24. -115

    -233

    1904

    684

    2597

    3990

    Returns: 5602.689038865257

  25. -3205

    -716

    -4360

    762

    -179

    2015

    Returns: 4977.899735458446

  26. 1021

    -4571

    4324

    770

    1261

    -4958

    Returns: 12080.310892726471

  27. 2929

    4059

    2749

    1935

    2300

    4669

    Returns: 3788.8312567679886

  28. -4509

    1164

    -2471

    4205

    -1134

    314

    Returns: 1267.8134762034315

  29. -2892

    2911

    -498

    -1045

    2178

    -2919

    Returns: 8918.48633492623

  30. -3817

    -1548

    172

    3130

    -786

    3

    Returns: 5754.743356938623

  31. 1859

    363

    -1533

    770

    -874

    724

    Returns: 5511.453658441391

  32. 3744

    -4662

    4447

    2429

    -4502

    -3160

    Returns: 6850.278125447774

  33. 2330

    3402

    2302

    -3323

    -1613

    -2789

    Returns: 6777.516588098733

  34. -2826

    -4103

    -3684

    -4955

    4442

    794

    Returns: 17489.756373460194

  35. -1793

    -4628

    547

    1081

    3820

    -693

    Returns: 6264.151511193035

  36. -3995

    -2312

    -4935

    -3509

    -1496

    -3596

    Returns: 3836.2498561371503

  37. 3037

    -4721

    3948

    -3876

    4068

    3102

    Returns: 13296.178983087277

  38. -3095

    3865

    -1484

    -1572

    -3149

    2545

    Returns: 8699.095108655383

  39. -1668

    872

    -4928

    2220

    4997

    2545

    Returns: 12805.229059833353

  40. 505

    3947

    882

    -2788

    -788

    -4094

    Returns: 12048.52449312916

  41. 755

    -4753

    -4892

    4139

    1576

    -2913

    Returns: 17037.44655043484

  42. 4706

    3924

    -162

    2807

    -3933

    125

    Returns: 9619.862864683768

  43. -3018

    1318

    2402

    -1561

    -17

    -4661

    Returns: 5515.513867610214

  44. 1954

    -1529

    -2581

    -3687

    4429

    3127

    Returns: 9507.514575830923

  45. 3894

    2790

    4756

    2439

    -306

    4189

    Returns: 8850.48113606521

  46. -4950

    -238

    681

    4698

    1350

    -3262

    Returns: 1999.7792946137197

  47. 3833

    2187

    -4476

    1133

    -2763

    1404

    Returns: 13282.558975455431

  48. -2732

    -4573

    -4077

    -3282

    -4932

    -2264

    Returns: 3719.718294424114

  49. -221

    4981

    -2786

    -477

    -1228

    1831

    Returns: 6492.058486587863

  50. -2481

    3145

    3207

    -1582

    2755

    2886

    Returns: 5809.992421564202

  51. -1090

    -3237

    -4184

    -2606

    2757

    1131

    Returns: 9450.744800718348

  52. -3649

    2704

    115

    -4421

    -1233

    340

    Returns: 9355.902042593589

  53. -4839

    -3460

    -1255

    2709

    -2246

    -1123

    Returns: 7287.607509565571

  54. -2667

    2375

    -2358

    -2726

    3503

    -3879

    Returns: 7349.889929197234

  55. 3061

    -2645

    3208

    -3165

    -175

    -1620

    Returns: 6357.445329020128

  56. 4091

    29

    4167

    859

    -3089

    -4706

    Returns: 16621.714379968587

  57. 63

    2628

    1935

    -4336

    1775

    1633

    Returns: 10462.150710745791

  58. -4587

    64

    2989

    649

    -1519

    2478

    Returns: 7389.411477537142

  59. -4179

    1773

    -2435

    4715

    -4470

    -2599

    Returns: 8343.50566913093

  60. -2579

    -1480

    -447

    -4484

    -940

    -558

    Returns: 4152.599057854966

  61. 90

    -4823

    1322

    -1562

    3110

    1269

    Returns: 6902.233441579703

  62. -1387

    4456

    -2097

    -239

    -4990

    789

    Returns: 4141.296796067416

  63. 468

    2942

    -4207

    -4963

    -1504

    -4761

    Returns: 12946.793883018552

  64. 4667

    3366

    3133

    -3454

    722

    -3909

    Returns: 11644.458293536238

  65. -3442

    -382

    -3165

    622

    -4940

    580

    Returns: 1477.5668719867363

  66. -3535

    714

    4269

    -670

    -3438

    -1958

    Returns: 10504.025114507553

  67. 554

    867

    398

    1007

    944

    517

    Returns: -1.0

  68. 495

    -110

    495

    -392

    495

    -16

    Returns: -1.0

  69. -996

    66

    -750

    -228

    -873

    -81

    Returns: -1.0

  70. 67

    193

    337

    187

    427

    185

    Returns: -1.0

  71. 132

    613

    282

    393

    102

    657

    Returns: -1.0

  72. -501

    355

    -1005

    505

    -669

    405

    Returns: -1.0

  73. 84

    59

    -90

    163

    -438

    371

    Returns: -1.0

  74. -687

    926

    -567

    872

    -627

    899

    Returns: -1.0

  75. 779

    -740

    899

    -917

    499

    -327

    Returns: -1.0

  76. 17

    3

    17

    1562

    17

    -4212

    Returns: -1.0

  77. 125

    -1254

    4256

    -1254

    -3123

    -1254

    Returns: -1.0

  78. 2

    -1

    -7

    2

    -1

    0

    Returns: -1.0

    One more example of three points on the same line.

  79. 1

    1

    2

    2

    3

    3

    Returns: -1.0

  80. 0

    2

    0

    0

    0

    1

    Returns: -1.0

  81. 0

    0

    -1

    -1

    1

    1

    Returns: -1.0

  82. 2

    5

    2

    9

    2

    1

    Returns: -1.0

  83. 0

    0

    1

    0

    -1

    1

    Returns: 2.4721359549995796

  84. 0

    5

    0

    6

    0

    4

    Returns: -1.0

  85. 1

    0

    2

    0

    0

    0

    Returns: -1.0


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: