Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define pb push_back
  4. #define F first
  5. #define S second
  6. #define ll long long
  7. #define ld long double
  8. #define endl '\n'
  9.  
  10. using namespace std;
  11.  
  12. ll s;
  13. int x1[10000], x2[10000], y1[10000], y2[10000];
  14. bool z[10000];
  15.  
  16. int main() {
  17.  
  18. freopen("input.txt", "r", stdin);
  19. freopen("output.txt", "w", stdout);
  20.  
  21. ios_base::sync_with_stdio(0);
  22. cin.tie(0);
  23. cout.tie(0);
  24. int n, m, k;
  25. cin >> n >> m >> k;
  26. swap(n, m);
  27. for(int i = 0; i < k; ++i) {
  28. int x, y;
  29. cin >> x >> y;
  30. char c;
  31. cin >> c;
  32. if(c == 'N') {
  33. x1[i] = x;
  34. y1[i] = y;
  35. x2[i] = x;
  36. y2[i] = n;
  37. } else if (c == 'S') {
  38. x2[i] = x;
  39. y2[i] = y;
  40. x1[i] = x;
  41. y1[i] = 1;
  42. } else if (c == 'W') {
  43. x2[i] = x;
  44. y2[i] = y;
  45. x1[i] = 1;
  46. y1[i] = y;
  47. } else {
  48. x1[i] = x;
  49. y1[i] = y;
  50. x2[i] = m;
  51. y2[i] = y;
  52. }
  53. }
  54. // for(int i = 0; i < k; ++i) {
  55. // cout << x1[i] << ' ' << x2[i] << ' ' << y1[i] << ' ' << y2[i] << endl;
  56. // }
  57. for(int i = 0; i < k; ++i) {
  58. for(int j = 0; j < k; ++j) {
  59. if(i == j) continue;
  60. if ( x1[i] == x2[i] && x2[j] == x1[j] && x1[i] == x1[j] && y1[i] == 1 && y2[j] == n && y1[j] <= y2[i] ) y2[i] = n;
  61. if (y1[i] == y2[i] && y2[j] == y1[j]&& y1[i] == y1[j] && x1[i] == 1 && x2[j] == m && x1[j] <= x2[i]) x2[i] = m;
  62. }
  63. }
  64. for(int i = 0; i < k; ++i) {
  65. if(!z[i]) {
  66. for(int j = 0; j < k; ++j) {
  67. if(!z[i] && i!=j) {
  68. if ( x1[j] >= x1[i] && x2[j] <= x2[i] && y1[j] >= y1[i] && y2[j] <= y2[i] ) {
  69. z[j] = 1;
  70. }
  71. }
  72. }
  73. }
  74. }
  75. for(int i = 0; i < k; ++i) {
  76. if (!z[i]) s += (( x2[i] - x1[i] + 1 ) * ( y2[i] - y1[i] + 1 ));
  77. }
  78. for(int i = 0; i < k; ++i) {
  79. if (!z[i]) {
  80. for(int j = 0; j < k; ++j) {
  81. if (!z[j] && i != j ) {
  82. if ( x1[j] >= x1[i] && x2[i] >= x2[j] && y1[j] <= y1[i] && y2[j] >= y2[i] ) s--;
  83. }
  84. }
  85. }
  86. }
  87. cout << s;
  88. return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement