Skip to content

Commit

Permalink
I978: Update to separate ranks wrt num problems solved in case of Hon…
Browse files Browse the repository at this point in the history
…ors with multiple solvd problems
  • Loading branch information
SamanwaySadhu committed Jul 25, 2024
1 parent 99d8798 commit 7591f51
Showing 1 changed file with 7 additions and 25 deletions.
32 changes: 7 additions & 25 deletions src/edu/csus/ecs/pc2/exports/ccs/ResultsFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,8 @@ public String[] createFileLines(IInternalContest contest, Group group, String re

// TODO finalizeData really needs a B instead of getBronzeRank
int lastMedalRank = finalizeData.getBronzeRank();
int lastSolvedNum = 0;
int rankNumber = 0;

// resort standingsRecord based on lastMedalRank and median
Vector<Account> accountVector = contest.getAccounts(Type.TEAM);
Expand All @@ -190,10 +192,6 @@ public String[] createFileLines(IInternalContest contest, Group group, String re
int realRank = 0;
int highestHonorSolvedCount = standingsRecords[lastMedalRank - 1].getNumberSolved();
int highHonorSolvedCount = highestHonorSolvedCount - 1;
int firstNonMedalHighestHonorRank = 0;
int firstHighHonorRank = 0;
int firstHonorRank = 0;
int firstHonorableRank = 0;

for (StandingsRecord record : standingsRecords) {
realRank++;
Expand All @@ -218,7 +216,7 @@ public String[] createFileLines(IInternalContest contest, Group group, String re
if (finalizeData.isUseWFGroupRanking()) {
if (record.getNumberSolved() >= highestHonorSolvedCount) {
isHighestHonor = true;
} else if (record.getNumberSolved() == highHonorSolvedCount) {
} else if (record.getNumberSolved() >= highHonorSolvedCount) {
isHighHonor = true;
} else if (record.getNumberSolved() >= median) {
isHonor = true;
Expand All @@ -233,27 +231,11 @@ else if (record.getNumberSolved() >= median) {
String rank = "";
if (!"honorable".equalsIgnoreCase(award)) {
if (finalizeData.isUseWFGroupRanking() && realRank > lastMedalRank) {
if (isHighestHonor) {
if (firstNonMedalHighestHonorRank == 0) {
firstNonMedalHighestHonorRank = realRank;
}
record.setRankNumber(firstNonMedalHighestHonorRank);
} else if (isHighHonor) {
if (firstHighHonorRank == 0) {
firstHighHonorRank = realRank;
}
record.setRankNumber(firstHighHonorRank);
} else if (isHonor) {
if (firstHonorRank == 0) {
firstHonorRank = realRank;
}
record.setRankNumber(firstHonorRank);
} else {
if (firstHonorableRank == 0) {
firstHonorableRank = realRank;
}
record.setRankNumber(firstHonorableRank);
if (record.getNumberSolved() != lastSolvedNum) {
lastSolvedNum = record.getNumberSolved();
rankNumber = realRank;
}
record.setRankNumber(rankNumber);
}
rank = Integer.toString(record.getRankNumber());
}
Expand Down

0 comments on commit 7591f51

Please sign in to comment.