Submission #3362228


Source Code Expand

N, M = gets.split.map(&:to_i)
edges = Array.new(N){[]}
M.times do
    a, b = gets.split.map(&:to_i)
    edges[a-1].push(b-1)
    edges[b-1].push(a-1)
end

visited = []
nums = []
n1 = 0
n2 = 0
N.times do |i|
    next if visited[i]
    num = 1
    visited[i] = true
    stack = [i]
    while stack.length > 0
        a = stack.pop
        edges[a].each do |b|
            next if visited[b]
            num += 1
            visited[b] = true
            stack.push(b)
        end
    end
    n1 = num if i == 0
    n2 += num if i != 1
end

n1 = [n1, N-n1].min
n2 = [n2, N-n2].min
opt = [n1, n2].min

esum = opt*(opt-1)/2 + (N-opt)*(N-opt-1)/2
puts esum - M

Submission Info

Submission Time
Task D - Shock
User betrue12
Language Ruby (2.3.3)
Score 100
Code Size 689 Byte
Status AC
Exec Time 217 ms
Memory 13948 KB

Compile Error

./Main.rb:10: warning: assigned but unused variable - nums

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 100 / 100
Status
AC × 3
AC × 23
Set Name Test Cases
Sample a01, a02, a03
All a01, a02, a03, b04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23
Case Name Status Exec Time Memory
a01 AC 7 ms 1788 KB
a02 AC 7 ms 1788 KB
a03 AC 7 ms 1788 KB
b04 AC 7 ms 1788 KB
b05 AC 55 ms 10108 KB
b06 AC 194 ms 10184 KB
b07 AC 193 ms 10108 KB
b08 AC 124 ms 10184 KB
b09 AC 192 ms 10236 KB
b10 AC 193 ms 10236 KB
b11 AC 7 ms 1788 KB
b12 AC 209 ms 12668 KB
b13 AC 210 ms 12156 KB
b14 AC 210 ms 12156 KB
b15 AC 205 ms 12156 KB
b16 AC 217 ms 12668 KB
b17 AC 209 ms 12540 KB
b18 AC 202 ms 12796 KB
b19 AC 204 ms 12924 KB
b20 AC 21 ms 2940 KB
b21 AC 42 ms 2684 KB
b22 AC 208 ms 12668 KB
b23 AC 209 ms 13948 KB