首先读懂题目的意思,它给定N个正数(有给定的顺序),让我们去模拟这个电梯上下运行的过程,然后输出其总运行时间。
测试点我第一次错的测试点2,3,6
原因在于: 相邻两个数相同的情况——移动时间为0,停留时间增加5s
#include学习柳诺using namespace std; int main(){ int n; scanf("%d", &n); int now = 0, tot = 0, x; for(int i = 1; i <= n; ++ i){ scanf("%d", &x); if(x < now) tot += (now - x) * 4 + 5; else if(x >= now) tot += (x - now) * 6 + 5; now = x; } printf("%d", tot); return 0; }
代码思路基本一致,柳诺的方法更节省空间
代码如下
#includeusing namespace std; int main() { int a, now = 0, sum = 0; cin >> a; while(cin >> a) { if(a > now) sum = sum + 6 * (a - now); else sum = sum + 4 * (now - a); now = a; sum += 5; } cout << sum; return 0; }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)