// compile: make data
// run: ./data < data.in
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#ifdef LOCAL
#include <debug/codeforces.h>
#define debug(x...) _debug_print(#x, x);
#define Debug(x...) _debug_print_format(#x, x);
std::ifstream terminal("/dev/tty");
#define PP cerr<<"\033[1;30mpause...\e[0m",terminal.ignore();
#else
#define debug(x...)
#define Debug(x...)
#define PP
#endif
template<typename...Args> void print_(Args...args){((cout<<args<<" "),...)<<endl;}
#define VI vector<int>
#define VII vector<vector<int>>
#define VIII vector<vector<vector<int>>>
#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 MAXN 200010
#define P 1000000007
int32_t main() {
ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
int n; cin >> n;
vector<vector<int>> a(n, vector<int>(n)), dp(n, vector<int>(n));
rep(i, 0, n) {
string s; cin >> s;
rep(j, 0, s.length()) {
a[i][j] = s[j] == '*';
}
}
dp[0][0] = !a[0][0];
const pair<int, int> dir[2] = {{1, 0}, {0, 1}};
rep(i, 0, n) rep(j, 0, n) {
for (auto [dx, dy]: dir) {
int x = i + dx, y = j + dy;
if (x < n && y < n && !a[x][y]) {
dp[x][y] += dp[i][j];
dp[x][y] %= P;
}
}
}
cout << dp[n-1][n-1] << endl;
return 0;
}
Zalv8, quick punt on this one. Seemed legit, nothing dodgy. Usual array of games and slots. Might be worth a look if you can’t find anything else: zalv8
Yo 188betlinkvao, are you the shortcut I’ve been searching for? Tired of hunting down working links. Hope your site is smooth and reliable, ya know? One click and I’m in! Find it at: 188betlinkvao
Alright, alright, 9bet99br caught my eye. Looks promising! The layout is clean and easy to navigate, which is a HUGE plus. Let’s see if they’ve got those jackpot spins waiting for me! Give it a look-see: 9bet99br
Bk8casino, I hear you cry! Get yourself over there, see what you think, I had a decent time of it so you might as well too: bk8casino
Vuagaaz is all good, you will have a right ol’ chuckle when you see what they have over there to play with: vuagaaz
Yo, 5sbet1 is legit, man! Found some solid games and the payouts were smooth. Definitely gonna hit it up again. Check it out here: 5sbet1
Love the promotions they run every weekend. It keeps the gameplay exciting and rewarding. I always suggest ph555taya to my buddies.
Best experience I’ve had in a while. The customer support is helpful and the bonuses are actually worth it. Give phokjili a shot and see for yourself.
Registration was a breeze and I was playing within minutes. The platform feels secure and professional. Glad I found jili44loginregister for my daily gaming sessions.
Best experience I’ve had with an online site lately. The games at bdfc777 are super smooth and the bonuses are legit.
Honestly the best interface I have used in a long time. Very easy to navigate and the bonuses are actually fair. Love spending my weekends on yu777com.
Feeling like a real VIP here. The rewards are generous and the platform feels very premium. You should check out hn88vip for the best perks.
The game selection is top notch. I spend most of my free time exploring the slots on q98game.
Really impressed with the withdrawal speed here. It is rare to find a site that pays out this quickly. Truly trust jili98login with my deposits.
[8115]odinbet লগইন ও অ্যাপ ডাউনলোড | বিকাশ দিয়ে অনলাইন ক্যাসিনো,odinbet লগইন করে সেরা অনলাইন স্লট গেম এবং লাইভ ক্যাসিনো খেলার নিয়ম জানুন। বিকাশ দিয়ে অনলাইন ক্যাসিনো গেমে যুক্ত হতে আজই অ্যাপ ডাউনলোড করুন। visit: odinbet
I finally found a platform that actually makes the signup process a breeze. The welcome bonuses are fair and the customer support team genuinely cares about new users. Every time I log in it feels like chatting with old friends who know exactly what players need. Check out crearcuentabetplay for yourself and see how smoothly you can start playing. crearcuentabetplay
Great vibes and even better wins! I’ve tried many sites but this one feels the most fair and transparent. Visit bdw444 if you want a real win.