列表

详情


NC221143. ProblemF:FlipFlow

描述

输入描述

输出描述

示例1

输入:

10 7 2
4 9

输出:

4

示例2

输入:

2000 333 3
1000 1250 1500

输出:

0

示例3

输入:

100 10 5
15 20 93 96 97

输出:

5

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Python3(3.9) 解法, 执行用时: 18ms, 内存消耗: 2920K, 提交时间: 2021-05-02 12:34:40

t,s,n=input().split()
t=int(t)
s=int(s)
a=0
b=s
u=0
r=input().split()
for i in r:
    i=int(i)
    a=a-(i-u)
    if a<0:
        a=0
    b=b+(i-u)
    if b>s:
        b=s
    o=a
    a=b
    b=o
    u=i
if t>(u+a):
    print(0)
else:
    print(u+a-t)

C++(clang++11) 解法, 执行用时: 11ms, 内存消耗: 496K, 提交时间: 2021-05-02 12:28:40

#include<bits/stdc++.h>
using namespace std;
int a[1234], n, t, s, r;
int main()
{
	cin >> t >> s >> n;
	for(int i = 1; i <= n; i++)
	{
		cin >> a[i];
		r = s - (i > 1) * max(r-a[i]+a[i-1], 0);
	}
	cout << max(a[n] + r - t, 0);
}

上一题