MCPcopy Create free account
hub / github.com/Tiwarishashwat/InterviewCodes / canAchieve

Method canAchieve

MaximizeTheMinimumGameScore.java:71–93  ·  view source on GitHub ↗
(int[] points, int n, int m, long targetScore)

Source from the content-addressed store, hash-verified

69
70 return maxPossibleMinScore;
71 }
72
73 private boolean canAchieve(int[] points, int n, int m, long targetScore) {
74 long movesUsed = 0, extraMoves = 0, skippedMoves = 0;
75
76 for (int i = 0; i < n && movesUsed <= m; i++) {
77 int currentPoints = points[i];
78 long requiredMoves = (targetScore + currentPoints - 1) / currentPoints;
79
80 if (extraMoves >= requiredMoves) {
81 extraMoves = 0;
82 skippedMoves++;
83 } else {
84 long transferredPoints = extraMoves * (long) currentPoints;
85 long newMoves = ((targetScore - transferredPoints) + currentPoints - 1) / currentPoints;
86 movesUsed += 2 * newMoves - 1;
87 movesUsed += skippedMoves;
88
89 extraMoves = Math.max(newMoves - 1, 0);
90 skippedMoves = 0;
91 }
92 }
93
94 return movesUsed <= m;
95 }
96}

Callers 1

maxScoreMethod · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected