8.27测试总结

· · 算法·理论

8.21测试总结

T643661 猜猜芭蕾舞剧将如何结束

得分:20

应得:100

考点:双指针

错误思路:将所有位置都模拟一遍

正确思路:模拟边界,如果最后边界重合,输出边界,否则输出&-1&

完整代码:

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int cl,cr,n,r;
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>r>>n;
    cr=r;
    while(n--)
    {
        int d;
        cin>>d;
        cl=max(min(cl+d,r),0ll);
        cr=max(min(cr+d,r),0ll);
    }
    if(cl!=cr)
    {
        cl=-1;
    }
    cout<<cl;
    return 0;
}