int controlElevator(int nPerson[], int nfloor, int upWeight){ int targetFloor = 1; int minFloor = 0; int N1 = 0; int N2 = nPerson[1]; int N3 = 0; int i = 0; for(i = 2; i <= nfloor; i++){ //i表示大众意义上的第i层 N3 += nPerson[i]; minFloor += (nPerson[i] * (i - 1) * upWeight); } for(i = 2; i <= nfloor; i++){ if(N1 + N2 < N3 * upWeight){ minFloor += (N1 + N2 - N3 * upWeight); N3 -= nPerson[i]; N1 += N2; N2 = nPerson[i]; targetFloor = i; } else break; } return minFloor; // return targetFloor; }