Advertisement
Guest User

Untitled

a guest
Jul 15th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.05 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. typedef vector<int> vi;
  6. typedef pair<int,int> ii;
  7. #define fs first
  8. #define sn second
  9. #define pb push_back
  10. #define inf -1000000
  11.  
  12. int main() {
  13. int w,h,n;
  14. cin>>w>>h>>n;
  15. char a;
  16. int b;
  17. ii W = {0,w};
  18. ii H = {0,h};
  19. set<ii> cortesW;
  20. set<ii> cortesH;
  21. cortesW.insert(W);
  22. cortesH.insert(H);
  23. set<int> maxW;
  24. set<int> maxH;
  25. maxW.insert(w);
  26. maxH.insert(h);
  27. int Wmax, Hmax;
  28. while(n--){
  29. cin>>a>>b;
  30. if(a=='V'){
  31. auto itr = cortesW.lower_bound({b,-inf});
  32. cortesW.insert({itr->fs,b-(itr->fs)});
  33. cortesW.insert({b,(itr->sn)-b});
  34. maxW.insert(b-(itr->fs));
  35. maxW.insert((itr->sn)-b);
  36. maxW.erase(itr->sn);
  37. cortesW.erase(itr);
  38. }
  39. else{
  40. auto itr = cortesH.lower_bound({b,-inf});
  41. cortesH.insert({itr->fs,b-(itr->fs)});
  42. cortesH.insert({b,(itr->sn)-b});
  43. maxH.insert(b-(itr->fs));
  44. maxH.insert((itr->sn)-b);
  45. maxH.erase(itr->sn);
  46. cortesH.erase(itr);
  47. }
  48. Wmax = *(maxW.rbegin());
  49. Hmax = *(maxH.rbegin());
  50. cout<<Wmax*Hmax<<endl;
  51. }
  52. return 0;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement