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
from disjointsets3 import DisjointSets import time def get_neighbors(x, y, image): neighbors = [] if ((x-1) in range(M)) and image[x-1][y] == 1: neighbors.append(((x-1)*N)+y) if ((x+1) in range(M)) and image[x+1][y] == 1: neighbors.append(((x+1)*N)+y) if ((y-1) in range(N)) and image[x][y-1] == 1: neighbors.append((x*N)+(y-1)) if ((y+1) in range(N)) and image[x][y+1] == 1: neighbors.append((x*N)+(y+1)) return neighbors st = time.process_time() M, N = map(int, input().split()) image = [list(map(int, input().split())) for _ in range(M)] S = DisjointSets(M*N) clouds = [] for x in range(len(image)): for y in range(len(image[x])): if image[x][y] == 1: coordinate = (x*N)+y clouds.append(coordinate) neighbors = get_neighbors(x, y, image) for n in neighbors: S.union(coordinate, n) et = time.process_time() print(et - st) sizes = {} largest = 0 for current_row in range(M): for current_column in range(N): if image[current_row][current_column] == 1: representative = S.findset(current_row*N+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)