和你想法一样,实现有点不同: #include <stdio.h> #define N 100005 int main(void) { int t; scanf("%d", &t); while (t--) { int i, n, num[N]; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", num + i); int left = 0, right = n - 1, res = 0, counted = 0; while (right > left) { int min = num[left] < num[right] ? num[left] : num[right]; if (min > counted) { res += (min - counted) * (right - left); counted = min; } if (num[left] < num[right]) left++; else right--; } printf("%d\n", res); } return 0; }
3 3

相关推荐

用微笑面对困难:只要你保证项目和获奖都是真的就行尤其是“对战,总负责人”啊这些套职,基本上队员,打杂的都这么写
点赞 评论 收藏
分享
09-13 08:41
服装/纺织设计
那一天的Java_J...:你第一次参加面试吗
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务