// compile: g++ data.cpp /usr/include/c++/12/debug/cpglib/print.o -o data -O1 -std=gnu++20 -Wall -Wextra -Wshadow -D_GLIBCXX_ASSERTIONS -fmax-errors=2 -DLOCAL
// run: time ./data < data.in
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#ifdef LOCAL
#include <debug/cpglib/print.h>
#define debug(x...) _debug_print(0, #x, x);
#define Debug(x...) _debug_print(1, #x, x);
#define DEBUG(x...) _debug_print(2, #x, x);
std::ifstream terminal("/dev/tty");
#define PP cerr<<"![1;30mpause...\e[0m",terminal.ignore();
#else
#define debug(x...)
#define Debug(x...)
#define DEBUG(x...)
#define PP
#endif
template<typename...Args> void print_(Args...args){((cout<<args<<" "),...)<<endl;}
#define rep(i,a,b) for(int i=(a);i<(int)(b);++i)
#define sz(v) ((int)(v).size())
#define print(...) print_(__VA_ARGS__);
#define FIND(a, x) ((find(a.begin(),a.end(),(x))!=a.end())?1:0)
#define cmin(x,...) x=min({(x),__VA_ARGS__})
#define cmax(x,...) x=max({(x),__VA_ARGS__})
#define INTMAX (int)(9223372036854775807)
#define INF (int)(1152921504606846976)
#define NaN (int)(0x8b88e1d0595d51d1)
#define double long double
#define int long long
#define uint unsigned long long
#define endl "\n"
#define MAXN 200010
int32_t main() {
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int n, m; cin >> n >> m;
vector<vector<bool>> a(n, vector<bool>(m, 0));
vector<queue<int>> col(m);
rep(i, 0, n) {
string s; cin >> s;
rep(j, 0, m) {
a[i][j] = s[j] == '*';
if (a[i][j]) col[j].push(i);
}
}
rep(j, 0, m) col[j].push(n);
int ans = 0;
rep(i, 0, n) {
// first: start col, second: height
stack<pair<int, int>> st;
rep(j, 0, m) if (col[j].size() && col[j].front() < i) col[j].pop();
rep(j, 0, m) {
int sc = j; // start col
while (st.size() && st.top().second > col[j].front() - i) {
auto [c, h] = st.top(); st.pop();
cmax(ans, (j - c) * h);
sc = c;
}
st.push({sc, col[j].front() - i});
}
while (st.size()) {
auto [c, h] = st.top(); st.pop();
cmax(ans, (m - c) * h);
}
}
cout << ans << endl;
return 0;
}
Downloaded that pito777app and surprisingly, it’s actually pretty decent! Smooth interface and a good variety of games. Worth a try, for real. Check out pito777app.
78wi, huh? Gave this a look-see. Not gonna lie, it’s got something going for it. It’s fresh and easy to use for a change. Maybe try it out, you might find your new favourite way to play too! 78wi
Yo, just hopped onto jiliwinbet7. Seems pretty similar to the other Jili sites. Anyone know if the odds are any different here? Help a brother out!
Downloaded the 52betapp the other day. Mobile betting is super convenient. The interface is clean and easy to use. Definitely recommend: 52betapp
Okay, alright, OK36524… I’m intrigued. Is it legit? Anyone cashed out recently? Don’t want to end up throwing money into a black hole, you know? Share your wins (or losses… lol) ok36524
OK365vv, what’s the deal? Are they just trying to confuse us with all these similar names? Anyone know if it’s connected to the other OK### platforms? Help a bro out! ok365vv
Interesting read! Understanding player retention via RTP & RNG is key-it’s fascinating how platforms like 26jl download prioritize transparency. Good insights on game strategy here! 👍
Dice games are all about understanding probabilities – even seemingly simple rolls! It’s fascinating how platforms like 747 live com offer so many game variations, making those calculations even more interesting. Registration seems straightforward too, which is a plus! 🤔
555phcasino, okay, it’s alright. Not amazing, but not terrible either. Got a decent selection and the interface ain’t clunky. Give it a shot: 555phcasino
LeoVegas online casino rocks my world It’s my all-time favorite. Always offers a solid experience. You have to check it out leovegas online casino.
OG777app? Not bad, not bad at all! The app is smooth, and I found a couple of games I really dig. Definitely a good option for gaming on the go. Download it here: og777app
The rigorous optimization demonstrated here mirrors the need for flawless, efficient systems across all high-stakes industries. Whether it’s maximizing computational resources or curating an elite user experience, efficiency is key. Achieving peak performance, much like finding the perfect strategy at a premium level, requires robust architecture, something you can find when exploring j77 casino vip.
Logging in has never been easier than with this site. The whole interface works perfectly on my phone and I never had any issues accessing my account. Security feels top notch and my personal details are always safe. If you want a hassle free gaming session take a look at 5gbtlogin
I have tried quite a few platforms but this one stands out for its incredible bonus structure. The wagering requirements are fair and the free spins trigger more often than I expected. Staff members are always polite and ready to guide you through the games. It is refreshing to find a casino that puts player satisfaction first. betvipcasinobono
This site really nails the slot gaming experience with stunning graphics and honest return rates. I never waited long for my winnings and the platform handles heavy traffic without any slowdowns. Feels like a community that genuinely cares about its members. thapolloslot
Honestly, the depth of the slot variety is noticeable. For parents juggling life, ease of access matters. Check out m kuwin app download for quick mobile play!
[351548]supplies professional anti-violence equipments and solutions for the whole world with strong and perfect production capacity. anti-violence.org
The bonuses are actually legit here. I managed to hit a decent win last night and the withdrawal was super quick. phjiliboss is my new favorite spot.