Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define pb push_back
- #define F first
- #define S second
- #define ll long long
- #define ld long double
- #define endl '\n'
- using namespace std;
- ll s;
- int x1[10000], x2[10000], y1[10000], y2[10000];
- bool z[10000];
- int main() {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- int n, m, k;
- cin >> n >> m >> k;
- swap(n, m);
- for(int i = 0; i < k; ++i) {
- int x, y;
- cin >> x >> y;
- char c;
- cin >> c;
- if(c == 'N') {
- x1[i] = x;
- y1[i] = y;
- x2[i] = x;
- y2[i] = n;
- } else if (c == 'S') {
- x2[i] = x;
- y2[i] = y;
- x1[i] = x;
- y1[i] = 1;
- } else if (c == 'W') {
- x2[i] = x;
- y2[i] = y;
- x1[i] = 1;
- y1[i] = y;
- } else {
- x1[i] = x;
- y1[i] = y;
- x2[i] = m;
- y2[i] = y;
- }
- }
- // for(int i = 0; i < k; ++i) {
- // cout << x1[i] << ' ' << x2[i] << ' ' << y1[i] << ' ' << y2[i] << endl;
- // }
- for(int i = 0; i < k; ++i) {
- for(int j = 0; j < k; ++j) {
- if(i == j) continue;
- 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;
- 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;
- }
- }
- for(int i = 0; i < k; ++i) {
- if(!z[i]) {
- for(int j = 0; j < k; ++j) {
- if(!z[i] && i!=j) {
- if ( x1[j] >= x1[i] && x2[j] <= x2[i] && y1[j] >= y1[i] && y2[j] <= y2[i] ) {
- z[j] = 1;
- }
- }
- }
- }
- }
- for(int i = 0; i < k; ++i) {
- if (!z[i]) s += (( x2[i] - x1[i] + 1 ) * ( y2[i] - y1[i] + 1 ));
- }
- for(int i = 0; i < k; ++i) {
- if (!z[i]) {
- for(int j = 0; j < k; ++j) {
- if (!z[j] && i != j ) {
- if ( x1[j] >= x1[i] && x2[i] >= x2[j] && y1[j] <= y1[i] && y2[j] >= y2[i] ) s--;
- }
- }
- }
- }
- cout << s;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement