diff --git a/prepare-selection.sh b/prepare-selection.sh index 5f8ac3cc43aa48bdc6c992bf66a7ac12781665a4..43997845c5b944dfc97dbcd7315614ed633adbf6 100755 --- a/prepare-selection.sh +++ b/prepare-selection.sh @@ -25,7 +25,7 @@ perl sohpc-assign.pl slots.csv weights-pref.csv students.csv project-preference # apply tentative selections if true ; then - sed -n -e '1aID,selected' -e 's/\([0-9\.]\{4,\}\)[: ]\{1,\}\([0-9]\{1,\}\).*/-\2,\1/p' select-by-pref.txt > assign-t.csv + sed -n -e '1aID,selected' -e 's/\([0-9\.]\{4,\}\)[: ]\{1,\}\([1-9][0-9]\{0,\}\).*/-\2,\1/p' select-by-pref.txt > assign-t.csv rm -rf Selection mkdir Selection cd Selection diff --git a/sohpc-assign.pl b/sohpc-assign.pl index 0cb3f29090245aa13e22726efe57b0a156c70e74..3555961e2d3a3573ee02a21410c2e8dea8332bfe 100755 --- a/sohpc-assign.pl +++ b/sohpc-assign.pl @@ -147,6 +147,7 @@ while (@todo) { next if defined $project2student{$p}{$slot}; foreach $c (@{$project{$p}{cand}}) { next if defined $student2project{$c->{student}}; + next unless $c->{value} > 0; push @cand, {project => $p, slot => $slot, student => $c, value => $c->{value} + max_score({%project2student, $p => {%{$project2student{$p}}, $slot => $c->{student}}}, {%student2project, $c->{student} => $p})}; } }