Submission #66745318
Source Code Expand
//# pragma GCC target("avx2")
# pragma GCC optimize("O3")
# pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
#define rep(i,n) for(int i=0;i<(n);i++)
#include"atcoder/all"
using namespace atcoder;
typedef modint1000000007 mi;
using namespace std;
#define all(a) a.begin(),a.end()
#define compress(a) sort(all(a));a.erase(unique(all(a)),a.end())
typedef long long ll;
typedef pair<ll,ll> P;
constexpr ll mod=998244353;
constexpr ll inf=3e18;
void solve(){
int h,w;
cin>>h>>w;
vector<string>S;
if(h<=w){
S=vector<string>(h);
rep(i,h)cin>>S[i];
}
else{
vector<string>S2(h);
S=vector<string>(w);
rep(i,h){
cin>>S2[i];
rep(j,w)S[j].push_back(S2[i][j]);
}
swap(h,w);
}
vector<vector<int>>rs(h+1,vector<int>(w+1));
rep(i,h){
rep(j,w){
if(S[i][j]=='#')rs[i+1][j+1]=1;
else rs[i+1][j+1]=-1;
}
}
rep(i,h+1){
rep(j,w)rs[i][j+1]+=rs[i][j];
}
rep(i,h){
rep(j,w+1){
rs[i+1][j]+=rs[i][j];
}
}
ll ans=0;
vector<int>ss(w+1);
unordered_map<int,ll>M;
for(int i=0;i<=h;i++){
for(int j=i+1;j<=h;j++){
rep(k,w+1)ss[k]=rs[i][k]-rs[j][k];
M.clear();
rep(k,w+1){
ans+=M[ss[k]];
M[ss[k]]++;
}
}
}
cout<<ans<<endl;
}
int main(){
ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int t;
cin>>t;
rep(T,t)solve();
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Balanced Rectangles |
| User | Rho17 |
| Language | C++ 20 (gcc 12.2) |
| Score | 525 |
| Code Size | 1364 Byte |
| Status | AC |
| Exec Time | 2246 ms |
| Memory | 19320 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 525 / 525 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt |
| All | hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| hand_01.txt | AC | 37 ms | 19320 KiB |
| hand_02.txt | AC | 21 ms | 19136 KiB |
| hand_03.txt | AC | 21 ms | 13084 KiB |
| hand_04.txt | AC | 7 ms | 7056 KiB |
| sample_01.txt | AC | 1 ms | 3572 KiB |
| test_01.txt | AC | 1 ms | 3464 KiB |
| test_02.txt | AC | 1 ms | 3572 KiB |
| test_03.txt | AC | 1 ms | 3612 KiB |
| test_04.txt | AC | 1 ms | 3560 KiB |
| test_05.txt | AC | 1 ms | 3576 KiB |
| test_06.txt | AC | 1 ms | 3580 KiB |
| test_07.txt | AC | 1 ms | 3504 KiB |
| test_08.txt | AC | 3 ms | 3600 KiB |
| test_09.txt | AC | 4 ms | 3620 KiB |
| test_10.txt | AC | 9 ms | 3556 KiB |
| test_11.txt | AC | 8 ms | 3564 KiB |
| test_12.txt | AC | 52 ms | 3480 KiB |
| test_13.txt | AC | 32 ms | 3616 KiB |
| test_14.txt | AC | 16 ms | 11896 KiB |
| test_15.txt | AC | 23 ms | 11864 KiB |
| test_16.txt | AC | 1732 ms | 5124 KiB |
| test_17.txt | AC | 1412 ms | 4636 KiB |
| test_18.txt | AC | 1731 ms | 4948 KiB |
| test_19.txt | AC | 1425 ms | 5240 KiB |
| test_20.txt | AC | 54 ms | 3548 KiB |
| test_21.txt | AC | 1585 ms | 5064 KiB |
| test_22.txt | AC | 1315 ms | 4676 KiB |
| test_23.txt | AC | 1729 ms | 4984 KiB |
| test_24.txt | AC | 2246 ms | 4968 KiB |
| test_25.txt | AC | 1461 ms | 4364 KiB |
| test_26.txt | AC | 1026 ms | 3908 KiB |
| test_27.txt | AC | 449 ms | 5128 KiB |
| test_28.txt | AC | 261 ms | 4040 KiB |
| test_29.txt | AC | 514 ms | 4464 KiB |
| test_30.txt | AC | 984 ms | 5020 KiB |
| test_31.txt | AC | 1527 ms | 4916 KiB |
| test_32.txt | AC | 955 ms | 4016 KiB |
| test_33.txt | AC | 602 ms | 4696 KiB |
| test_34.txt | AC | 442 ms | 4860 KiB |
| test_35.txt | AC | 572 ms | 4720 KiB |
| test_36.txt | AC | 367 ms | 4728 KiB |
| test_37.txt | AC | 655 ms | 4692 KiB |
| test_38.txt | AC | 181 ms | 4752 KiB |