結果
問題 | No.1141 田グリッド |
ユーザー | catupper |
提出日時 | 2020-07-31 21:37:18 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,703 bytes |
コンパイル時間 | 953 ms |
コンパイル使用メモリ | 95,268 KB |
実行使用メモリ | 6,784 KB |
最終ジャッジ日時 | 2024-07-06 16:56:21 |
合計ジャッジ時間 | 5,037 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,376 KB |
testcase_02 | AC | 2 ms
5,376 KB |
testcase_03 | AC | 2 ms
5,376 KB |
testcase_04 | AC | 2 ms
5,376 KB |
testcase_05 | AC | 2 ms
5,376 KB |
testcase_06 | AC | 2 ms
5,376 KB |
testcase_07 | AC | 2 ms
5,376 KB |
testcase_08 | AC | 4 ms
5,376 KB |
testcase_09 | AC | 2 ms
5,376 KB |
testcase_10 | AC | 4 ms
5,376 KB |
testcase_11 | AC | 5 ms
5,376 KB |
testcase_12 | AC | 4 ms
5,376 KB |
testcase_13 | AC | 162 ms
5,376 KB |
testcase_14 | AC | 162 ms
6,784 KB |
testcase_15 | AC | 153 ms
5,376 KB |
testcase_16 | AC | 155 ms
5,376 KB |
testcase_17 | AC | 151 ms
5,376 KB |
testcase_18 | AC | 113 ms
5,376 KB |
testcase_19 | AC | 118 ms
5,376 KB |
testcase_20 | AC | 115 ms
5,376 KB |
testcase_21 | AC | 151 ms
5,376 KB |
testcase_22 | AC | 152 ms
5,376 KB |
testcase_23 | AC | 150 ms
5,376 KB |
testcase_24 | WA | - |
testcase_25 | WA | - |
testcase_26 | WA | - |
testcase_27 | WA | - |
testcase_28 | WA | - |
testcase_29 | WA | - |
testcase_30 | WA | - |
testcase_31 | WA | - |
testcase_32 | WA | - |
testcase_33 | WA | - |
ソースコード
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #include<vector> #include<map> #include<set> #include<string> #include<queue> #include<stack> #include<complex> using namespace std; #define MOD 1000000007 #define MOD2 998244353 #define INF (1<<29) #define LINF (1LL<<60) #define EPS (1e-10) #define PI 3.1415926535897932384626433832795028 typedef long long Int; typedef pair<Int, Int> P; typedef long double Real; typedef complex<Real> CP; Int mod_pow(Int x, Int a, Int m = MOD){ if(a == 0)return 1; if(a % 2 == 1)return x * mod_pow(x, a - 1, m) % m; Int res = mod_pow(x, a / 2, m); return res * res % m; } Int inv(Int x, Int m = MOD){ return mod_pow(x, m-2, m); } Int h, w; int main(){ cin >> h >> w; vector<vector<Int>> a(h, vector<Int>(w)); vector<Int> iprod(h, 1); vector<Int> jprod(w, 1); vector<Int> izero(h, 0); vector<Int> jzero(w, 0); Int allprod = 1; Int zero = 0; for(int i = 0;i < h;i++){ for(int j = 0;j < w;j++){ cin >> a[i][j]; if(a[i][j] == 0){ izero[i]++; jzero[j]++; zero++; }else{ (allprod *= a[i][j]) %= MOD; (iprod[i] *= a[i][j]) %= MOD; (jprod[j] *= a[i][j]) %= MOD; } } } Int q, r, c; cin >> q; while(q--){ cin >> r >> c;r--,c--; int zero_cnt = zero - izero[r] - jzero[c] + (a[r][c] == 0); if(zero > 0){ puts("0"); continue; } Int ans = (allprod * a[r][c]) %MOD * inv(iprod[r] * jprod[c] % MOD) % MOD; cout << ans << endl; } return 0; }