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
# Name: Set Kaung Lwin # ID: 6632017 # Sec: 543 rows,columns = map(int,input().split()) image = [[] for _ in range(rows)] for current_row in range(len(image)): image[current_row] = list(map(int,input().split())) from disjointsets3 import DisjointSets def printImage(m): for i in m: print(i) moves =[(-1,0),(1,0),(0,1),(0,-1)] # up down right left def isValid(tr,tc): return tr >= 0 and tr < rows and tc >=0 and tc < columns def sides(r,c): valid_moves = [] for (i,j) in moves: target_row = r+i target_column = c+j if isValid(target_row,target_column): valid_moves.append((target_row,target_column)) return valid_moves ds = DisjointSets(rows*columns) largest = 0 for current_row in range(len(image)): for current_column in range(len(image[current_row])): if image[current_row][current_column] == 1: for (neighbor_row,neighbor_col) in sides(current_row,current_column): if image[neighbor_row][neighbor_col] == 1: ds.union( ( neighbor_row*columns+neighbor_col ) , ( current_row*columns+current_column ) ) sizes = {} for current_row in range(rows): for current_column in range(columns): if image[current_row][current_column] == 1: representative = ds.findset(current_row*columns+current_column) if representative in sizes: sizes[representative] += 1 else: sizes[representative] = 1 largest = max(sizes[representative],largest) print(largest)
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)