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
AC × 1
AC × 43
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