Advertisement
Guest User

геома не курильщика

a guest
Dec 3rd, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.95 KB | None | 0 0
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <queue>
  4. #include <math.h>
  5. #include <vector>
  6. #include <cstdio>
  7. using namespace std;
  8. vector<double> up;
  9. vector<double> down;
  10.  
  11. int main() {
  12. //freopen("sweets.in", "r", stdin);
  13. //freopen("sweets.out", "w", stdout);
  14.  
  15. int n, m;
  16. cin >> n >> m;
  17. int a, b, apr;
  18. double k, b1, y1, y2, x1, x2;
  19. cin >> a >> b;
  20. apr = a;
  21. up.push_back(b);
  22. for (int i = 1; i< n; i++)
  23. {
  24. cin >> a >> b;
  25. if (apr + 1 == a)
  26. up.push_back(b);
  27. else
  28. {
  29. y2 = b;
  30. y1 = up[up.size() - 1];
  31. x1 = apr;
  32. x2 = a;
  33. k = (y1 - y2) / (x1 - x2);
  34. b1 = y1 - (x1 * k);
  35. for (int j = apr + 1; j <= a; j++)
  36. {
  37. up.push_back(k * j + b1);
  38. }
  39. }
  40. apr = a;
  41. }
  42.  
  43.  
  44. cin >> a >> b;
  45. apr = a;
  46. down.push_back(b);
  47. for (int i = 1; i < m; i++)
  48. {
  49. cin >> a >> b;
  50. if (apr + 1 == a)
  51. down.push_back(b);
  52. else
  53. {
  54. y2 = b;
  55. y1 = down[down.size() - 1];
  56. x1 = apr;
  57. x2 = a;
  58. k = (y1 - y2) / (x1 - x2);
  59. b1 = y1 - (x1 * k);
  60. for (int j = apr + 1; j <= a; j++)
  61. {
  62. down.push_back(k * j + b1);
  63. }
  64. }
  65. apr = a;
  66. }
  67. double minr = 1000000000;
  68. for (int i = 0; i < up.size(); i++)
  69. {
  70. if (up[i] - down[i] < minr)
  71. minr = up[i] - down[i];
  72. }
  73. int ans = 0;
  74. bool flag = false;
  75. for (int i = 0; i < up.size(); i++)
  76. {
  77. if ((abs(up[i] - down[i] - minr) <= 0.0001) && flag)
  78. {
  79. flag = false;
  80. }
  81. else if ((!flag) && (abs(up[i] - down[i] - minr) >= 0.0001))
  82. {
  83. flag = true;
  84. ans++;
  85. }
  86. }
  87. cout << ans;
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement