ample_syrup_abeaumont
 
% 2017 Round 1C, Problem A, in Picat, by Alfredo Beaumont
% https://code.google.com/codejam/contest/3274486/dashboard
% Ample Syrup

import util, mip.

go(T, N, K, Xs) =>
	S1 = [P[1] * P[1] * pi : P in Xs],
	S2 = [P[1] * P[2] * 2 * pi : P in Xs],
	X = new_array(N),
	X :: 0..1,
	sum(X) #= K,
	Y = new_array(N),
	Y :: 0..1,
	sum(Y) #= 1,
	%sum([(X[I] * Y[I]) : I in 1..N]) #= 1,
	foreach(I in 1..N)
		(Y[I] #= 1) #=> (X[I] #= 1)
	end,
	S #= sum([(S2[I] * X[I] + S1[I] * Y[I]) : I in 1..N]),
	solve($[max(S)], [S, X, Y]),
	printf(stderr, "Case #%d: %f\n", T, S).


main() =>
	[T] = [X.to_number() : X in readln().split()],
	foreach(I in 1..T)
		[N, K] = [X.to_number() : X in readln().split()],
		Xs = [[X.to_number() : X in readln().split()] : J in 1..N],
		go(I, N, K, Xs)
	end.