+sub drop ($$) {
+ my ($i,$why) = @_;
+ print "dropping $choices[$i]: $why\n";
+ $ch[$i]{Dropped} = $why;
+}
+
+print "# quorum\n" or die;
+
+foreach my $i (0..$#choices) {
+ next if $ch[$i]{Dropped};
+ next if $i == $defi;
+ my $v = $vab[$i][$defi];
+ next if $v >= $quorum;
+ drop $i, "quorum ($v < $quorum)";
+}
+
+print "# maj. ratio\n" or die;
+
+foreach my $i (0..$#choices) {
+ next if $ch[$i]{Dropped};
+ next if $i == $defi;
+ my $majr = $ch[$i]{Smaj};
+ $majr ||= [1,1];
+ my $vad = scalar @{ $vab[$i][$defi] };
+ my $vda = scalar @{ $vab[$defi][$i] };
+ next if $vad * $majr->[1] > $vda * $majr->[0];
+ drop $i, "majority ratio ($vad * $majr->[1] <= $vda * $majr->[0])";
+}
+
+