题目中说“每次操作可以获得 aa 经验值(不能为负)”,当我判断输入为负时跳出本次循环后测试点#3无法通过
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double life = 10.0;
int score, level;
score = level = 0;
int n, aScore;
double cost = 0.0;
scanf("%d", &n);
while (n--)
{
scanf("%lf%d", &cost, &aScore);
life -= cost;
if (life > 10.0)
life = 10;
if (life <= 0.0)
break;
score += aScore;
}
while (score >= pow(2, level))
{
score -= pow(2, level);
level++;
}
printf("%d %d\n", level, score);
return 0;
}
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
double life = 10.0;
int score, level;
score = level = 0;
int n, aScore;
double cost = 0.0;
scanf("%d", &n);
while (n--)
{
scanf("%lf%d", &cost, &aScore);
# 判断并处理后无法AC
if (aScore < 0.0)
continue;
life -= cost;
if (life > 10.0)
life = 10;
if (life <= 0.0)
break;
score += aScore;
}
while (score >= pow(2, level))
{
score -= pow(2, level);
level++;
}
printf("%d %d\n", level, score);
return 0;
}