fork download
  1. import java.math.BigDecimal;
  2. import java.math.BigInteger;
  3. import java.util.ArrayList;
  4. import java.util.Scanner;
  5.  
  6. class RysunkiBajtelka
  7. {
  8. public static void main(String[] args)
  9. {
  10. Scanner in = new Scanner(System.in);
  11. BigInteger n = in.nextBigInteger();
  12. ArrayList<Long> x1 = new ArrayList<>();
  13. ArrayList<Long> y1 = new ArrayList<>();
  14. ArrayList<Long> x2 = new ArrayList<>();
  15. ArrayList<Long> y2 = new ArrayList<>();
  16. for (BigInteger i = BigInteger.ZERO; i.compareTo(n) < 0; i = i.add(BigInteger.ONE))
  17. {
  18. x1.add(in.nextLong());
  19. y1.add(in.nextLong());
  20. do
  21. {
  22. x1.add(in.nextLong());
  23. y1.add(in.nextLong());
  24. }
  25. while (x1.get(0) != x1.get(x1.size() - 1) || y1.get(0) != y1.get(y1.size() - 1));
  26. x2.add(in.nextLong());
  27. y2.add(in.nextLong());
  28. do
  29. {
  30.  
  31. x2.add(in.nextLong());
  32. y2.add(in.nextLong());
  33. System.out.println(x2.get(0) + " " + x2.get(x2.size() - 1));
  34. System.out.println(y2.get(0) + " " + y2.get(y2.size() - 1));
  35. System.out.println(y2.get(0) + y2.get(y2.size() - 1));
  36. System.out.println(x2.get(0) != x2.get(x2.size() - 1) || y2.get(0) != y2.get(y2.size() - 1));
  37. }
  38. while (x2.get(0) != x2.get(x2.size() - 1) || y2.get(0) != y2.get(y2.size() - 1));
  39.  
  40. BigDecimal blackArea = calculateArea(x1, y1);
  41. BigDecimal grayArea = calculateArea(x2, y2);
  42. BigDecimal temp = blackArea.multiply(BigDecimal.TEN).add(grayArea.subtract(blackArea).multiply(BigDecimal.valueOf(6)));
  43. BigInteger answer = temp.toBigInteger();
  44. System.out.println(answer);
  45. x1.clear();
  46. y1.clear();
  47. x2.clear();
  48. y2.clear();
  49. }
  50. }
  51.  
  52. public static BigDecimal calculateArea(ArrayList<Long> x, ArrayList<Long> y)
  53. {
  54. BigDecimal result = BigDecimal.ZERO;
  55. for (int i = 0; i < (x.size() - 1); i++)
  56. result = result.add(BigDecimal.valueOf(x.get(i) * y.get(i + 1) - x.get(i + 1) * y.get(i)));
  57. return result.divide(BigDecimal.valueOf(2));
  58. }
  59. }
Runtime error #stdin #stdout #stderr 0.08s 2184192KB
stdin
1
0 0 0 1 1 1 1 0 0 0
100000 100000 -100000 100000 -100000 -100000 100000 -100000 100000 100000
stdout
100000 -100000
100000 100000
200000
true
100000 -100000
100000 -100000
0
true
100000 100000
100000 -100000
0
true
100000 100000
100000 100000
200000
true
stderr
Exception in thread "main" java.util.NoSuchElementException
	at java.util.Scanner.throwFor(Scanner.java:862)
	at java.util.Scanner.next(Scanner.java:1485)
	at java.util.Scanner.nextLong(Scanner.java:2222)
	at java.util.Scanner.nextLong(Scanner.java:2182)
	at RysunkiBajtelka.main(Main.java:31)