Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Solution {
- public double[] max3(ArrayList<Double> a, double min, double max) {
- double[] m = new double[3];
- for (int i = 0; i < a.size(); i++) {
- if (a.get(i) < min || a.get(i) >= max)
- continue;
- if (a.get(i) > m[0]) {
- m[2] = m[1];
- m[1] = m[0];
- m[0] = a.get(i);
- } else if (a.get(i) > m[1]) {
- m[2] = m[1];
- m[1] = a.get(i);
- } else if (a.get(i) > m[2]) {
- m[2] = a.get(i);
- }
- }
- return m;
- }
- public double[] min3(ArrayList<Double> a, double min, double max) {
- double[] m = new double[3];
- Arrays.fill(m, 2.);
- for (int i = 0; i < a.size(); i++) {
- if (a.get(i) < min || a.get(i) >= max)
- continue;
- if (a.get(i) < m[0]) {
- m[2] = m[1];
- m[1] = m[0];
- m[0] = a.get(i);
- } else if (a.get(i) < m[1]) {
- m[2] = m[1];
- m[1] = a.get(i);
- } else if (a.get(i) < m[2]) {
- m[2] = a.get(i);
- }
- }
- return m;
- }
- public int solve(ArrayList<String> A) {
- ArrayList<Double> a = new ArrayList<Double>(A.size());
- for (int i = 0; i < A.size(); i++) {
- double d = Double.parseDouble(A.get(i));
- if (d > 0 && d < 2)
- a.add(d);
- }
- // case A A A
- double[] maxA = max3(a, 0, 2./3);
- if (maxA[2] > 0 && maxA[0] + maxA[1] + maxA[2] > 1)
- return 1;
- // case A A C
- double[] minA = min3(a, 0, 2./3);
- double[] minC = min3(a, 1, 2);
- if (minA[0] + minA[1] + minC[0] < 2)
- return 1;
- // case A B B
- double[] minB = min3(a, 2./3, 1);
- if (minA[0] + minB[0] + minB[1] < 2)
- return 1;
- // case A B C
- if (minA[0] + minB[0] + minC[0] < 2)
- return 1;
- // case A1 A1 B
- double[] maxA1 = max3(a, 0, 1./3);
- double[] maxB = max3(a, 2./3, 1);
- if (maxA1[1] > 0 && maxA1[0] + maxA1[1] + maxB[0] > 1)
- return 1;
- // case A1 A2 B
- double[] minA1 = min3(a, 0, 1./3);
- double[] minA2 = min3(a, 1./3, 2./3);
- if (minA1[0] + minA2[0] + minB[0] < 2)
- return 1;
- // case A2 A2 B
- if (minA2[0] + minA2[1] + minB[0] < 2)
- return 1;
- return 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement