a53

Hambar

a53
Mar 23rd, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int n,m,x,maxx,y;
  4. char v[1001][1001];
  5. int v1[1001];
  6. int get(int vec[], int k)
  7. {
  8. stack<int> s;
  9. int maxa = 0, tp, awt, i = 0;
  10. while (i < k)
  11. {
  12. if (s.empty() || vec[s.top()] <= vec[i]) s.push(i++);
  13. else
  14. {
  15. tp = s.top();
  16. s.pop();
  17. awt = vec[tp] * (s.empty() ? i : i - s.top() - 1);
  18. if (maxa < awt) maxa = awt;
  19. }
  20. }
  21. while (!s.empty())
  22. {
  23. tp = s.top();
  24. s.pop();
  25. awt = vec[tp] * (s.empty() ? i : i - s.top() - 1);
  26. if (maxa < awt) maxa = awt;
  27. }
  28. return maxa;
  29. }
  30. int main()
  31. {
  32. ifstream in("hambar.in");
  33. ofstream out("hambar.out");
  34. in>>n>>m;
  35. in.get();
  36. memset(v,'0',sizeof(v));
  37. for(int i=0; i<m; i++)
  38. { in>>x>>y;
  39. v[x-1][y-1]='1';
  40. }
  41. m=n;
  42. for(int j = 0; j < n; ++j)
  43. {
  44. for(int i = 0; i < m; ++i)
  45. {
  46. if((v[j][i] - '0') == 1) v1[i] = 0;
  47. else if((v[j][i] - '0') == 0) v1[i] += 1;
  48. }
  49. x = get(v1, m);
  50.  
  51.  
  52. if(x > maxx) maxx = x;
  53. }
  54. out<<maxx;
  55. return 0;
  56. }
Add Comment
Please, Sign In to add comment