Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
/// https://www.pbinfo.ro/probleme/1677/tort #include
#include
using namespace std; ifstream cin("tort.in"); ofstream cout("tort.out"); char mat[505][505]; int dp[505][505]; bool valid(int i, int j , int l) { if(mat[i][j]=='X') return false; if(mat[i-l+1][j]=='X') return false; if(mat[i][j-l+1]=='X') return false; if(mat[i-l+1][j-l+1] == 'X') return false; return true; } void update(int pi, int pj, int l) { for(int i = pi-l+1;i<=pi;i++) for(int j = pj-l+1;j<=pj;j++) mat[i][j] = 'X'; } int main() { int n , m, maxL = -1e9 ; cin>>n>>m; //Construim dp[i][j] = patratul de latura maxima cu coltul din dreapta-jos in (i,j) for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++) { cin>>mat[i][j]; dp[i][j] = 1; if(mat[i][j]==mat[i-1][j]&&mat[i][j]==mat[i][j-1]&&mat[i][j]==mat[i-1][j-1]) dp[i][j] = min(min(dp[i-1][j],dp[i][j-1]),dp[i-1][j-1])+1; maxL = max(maxL,dp[i][j]); } int p = 0; for(int k = maxL;k>0;k--) { for(int i = 1;i<=n;i++) for(int j = 1;j<=m;j++) { if(dp[i][j]>=k&&valid(i,j,k)) { cout<
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)