题目中: Each shot always reduces the hit points of the target tank by 8, and if the number of hit points of the target before the shot was greater than zero, the shooting tank receives 3 score points.
之前弄错了顺序,要先判断加分,再减hit point
#include <stdio.h>
int main() {
int n, m, i;
int target, shot;
int score[7] ;
int hit[7];
scanf("%d%d", &n, &m);
for (i=1; i<=n; ++i) {
score[i] = 0;
hit[i] = 100;
}
for (i=0; i<m; ++i) {
scanf("%d%d", &shot, &target);
if (hit[shot] > 0) { // otherwise ignore this shoot
if (hit[target] > 0) {
score[shot] += 3;
}
hit[target] -= 8;
}
}
for (i=1; i<=n; ++i) {
if (hit[i] > 0) {
score[i] += (hit[i] >> 1);
}
printf("%d %d\n", hit[i], score[i]);
}
return 0;
}