結果

問題 No.866 レベルKの正方形
ユーザー kotatsugame
提出日時 2019-08-28 12:10:18
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 2,256 ms / 6,000 ms
コード長 541 bytes
コンパイル時間 659 ms
コンパイル使用メモリ 70,880 KB
実行使用メモリ 417,324 KB
最終ジャッジ日時 2024-11-17 16:21:59
合計ジャッジ時間 28,678 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 22
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp:7:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
    7 | main()
      | ^~~~

ソースコード

diff #

#include<iostream>
#include<algorithm>
using namespace std;
int H,W,K;
string s[2000];
int dp[2000][2000][26];
main()
{
	cin>>H>>W>>K;
	for(int i=0;i<H;i++)cin>>s[i];
	for(int i=H;i--;)for(int j=W;j--;)
	{
		for(int c=0;c<26;c++)
		{
			dp[i][j][c]=min({i+1<H?dp[i+1][j][c]:H-i,j+1<W?dp[i][j+1][c]:W-j,i+1<H&&j+1<W?dp[i+1][j+1][c]:2000})+1;
		}
		dp[i][j][s[i][j]-'a']=1;
	}
	long ans=0;
	for(int i=0;i<H;i++)for(int j=0;j<W;j++)
	{
		sort(dp[i][j],dp[i][j]+26);
		ans+=(K<26?dp[i][j][K]:min(H-i,W-j)+1)-dp[i][j][K-1];
	}
	cout<<ans<<endl;
}
0