Submission #32150851


Source Code Expand

N,K = gets.split.map(&:to_i)
exit~p(-1) if (N-1)*(N-2)/2<K

E = Array.new(N+1){[]}
T = (0..).find{|t| K<=t*(t+1)/2+N-2-t }
Over = T*(T+1)/2+N-2-T-K
#warn [N,K,T,Over].inspect
(2..2+T).each{|v|
	E[1]<<v
}
if 0<T
	Over.times{|t|
		E[T+2]<<T+1-t
	}
	[2,*3+T..N].each_cons(2){|u,v|
		E[u]<<v
	}
else
	(3..N-Over).each{|v|
		E[v].concat [*1...v]-[v-2]
	}
	Over.times{|t|
		E[N-t].concat [*1...N-t]
	}
end
#warn E.inspect

p E.sum(&:size)
E.each_with_index{|bs,a|
	puts bs.map{|b| "#{a} #{b}" }
}

Submission Info

Submission Time
Task E - Friendships
User ds14050
Language Ruby (2.7.1)
Score 500
Code Size 522 Byte
Status AC
Exec Time 62 ms
Memory 14296 KiB

Judge Result

Set Name All Sample
Score / Max Score 500 / 500 0 / 0
Status
AC × 18
AC × 2
Set Name Test Cases
All sample_01, sample_02, testcase_01, testcase_02, testcase_03, testcase_04, testcase_05, testcase_06, testcase_07, testcase_08, testcase_09, testcase_10, testcase_11, testcase_12, testcase_13, testcase_14, testcase_15, testcase_16
Sample sample_01, sample_02
Case Name Status Exec Time Memory
sample_01 AC 58 ms 14248 KiB
sample_02 AC 57 ms 14296 KiB
testcase_01 AC 56 ms 14156 KiB
testcase_02 AC 62 ms 14244 KiB
testcase_03 AC 60 ms 14080 KiB
testcase_04 AC 61 ms 14292 KiB
testcase_05 AC 58 ms 14212 KiB
testcase_06 AC 58 ms 14196 KiB
testcase_07 AC 60 ms 14176 KiB
testcase_08 AC 58 ms 13984 KiB
testcase_09 AC 55 ms 14096 KiB
testcase_10 AC 55 ms 14200 KiB
testcase_11 AC 55 ms 14208 KiB
testcase_12 AC 58 ms 14144 KiB
testcase_13 AC 58 ms 14112 KiB
testcase_14 AC 55 ms 14152 KiB
testcase_15 AC 62 ms 14208 KiB
testcase_16 AC 60 ms 14184 KiB