NC227940. 终别
描述
——《Last Regrets》不愿对你言说感谢,
始终将它埋藏心中,
离别总是在纯洁无瑕的,
梦境过后 悄然降临,
纷纷飘落在双手间的碎片,
无论何时 无论何时都要紧紧握住,
敢于笑到最后的那份坚强,
已然深有体会。
输入描述
第一行一个数,分别表示十七兽的数量
第二行共n个整数,第i个整数表示,表示第i只十七兽的血量
输出描述
共一个数,表示珂朵莉需要挥出的斩击数
示例1
输入:
3 2 0 1
输出:
1
说明:
对1,2位置使用魔法,对3造成伤害,共斩击1次示例2
输入:
10 3 2 2 2 3 1 1 2 1 2
输出:
5
说明:
对1,2使用魔法,接下来的斩击位置为:C++ 解法, 执行用时: 315ms, 内存消耗: 12092K, 提交时间: 2021-10-27 11:25:51
#include <bits/stdc++.h> using namespace std; int n,a[1000005],b[1000005],c[1000005]; int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>a[i]; b[i]=a[i]; } long long l=0,r=0,ans=0; for(int i=n;i>=3;i--) { if(a[i]>0) { r+=a[i] ; a[i-1]-=a[i]; a[i-2]-=a[i]; } } ans=r; for(int i=2;i<=n-1;i++) { if(a[i+1]>0) r-=a[i+1]; c[i-1]+=b[i-1]; if(c[i-1]>0) { l+=c[i-1]; c[i]-=c[i-1]; c[i+1]-=c[i-1]; } ans=min(ans,l+r); } cout<<ans<<endl; return 0; }