Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- ifstream fin("hambar2.in");
- ofstream fout("hambar2.out");
- int n, m, a[1010][1010];
- void histograma()
- {
- for (int j = 1; j <= m; j++) /// iau fiecare coloana in parte
- {
- stack<int> s;
- s.push(0);
- a[n + 1][j] = 1; /// pun un pom sa il fortez sa imi calculeze cand ajung pe ultima linie
- for (int i = 1; i <= n + 1; i++) /// iau fiecare linie si parcurg toate celulele de pe coloana j
- {
- if (a[i][j]) /// daca am pom il marchez cu 0 (e o gaura, nu ma intereseaza)
- a[i][j] = 0;
- else
- a[i][j] = a[i][j - 1] + 1; /// altfel el va deveni anterior + 1 ceea ce inseamna ca pot continua o zona
- while (a[i][j] < a[s.top()][j]) /// in stiva voi avea indicii unor valori care sunt in ordine crescatoare s: 5 4 3 2 1
- {
- int latime = a[s.top()][j]; /// latimea va fi zona curenta
- s.pop();
- int arie = latime * (i - 1 - s.top()); /// asta nu il inteleg
- }
- s.push(i); /// la final adaug indicele elementului
- }
- }
- }
- int main()
- {
- fin >> n >> m; /// citesc dimensiunile matricii
- for (int i = 1; i <= m; i++) /// citesc coordonatele pomilor
- {
- int x, y;
- fin >> x >> y;
- a[x][y] = 1; /// marchez pomul
- }
- histograma();
- fin.close();
- fout.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement