题解:P15545 「Stoi2037」晴天

· · 题解

简单签到题。

枚举每一天,根据 v _ i 判断路程是加上 xx - v_i 还是不加,最后每天都判断是否到达即可。

#include <bits/stdc++.h>
#define rep(i,l,r) for(int i=(l);i<=(r);i++)
#define per(i,r,l) for(int i=(r);i>=(l);i--)
//#define OI
using namespace std;

int n, s, x, day, ans;
int a[1000005];
int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    #ifdef OI
    freopen(".in", "r", stdin);
    freopen(".out", "w", stdout);
    #endif
    cin >> n >> s >> x;
    rep(i, 1, n) cin >> a[i];
    rep(i, 1, n) {
        day++;
        if (a[i] == 0) ans += x;
        else if (a[i] >= 1) ans += x - a[i];
        if (ans >= s) break;
    }
    if (ans < s) cout << -1;
    else cout << day;
    return 0;
}