#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
const int inf = 0x3f3f3f3f;
long long num[maxn];
int main(){
memset(num,0,sizeof(num));
long long H,n;
scanf("%lld%lld",&H,&n);
for(int i=0;i<n;i++){
scanf("%lld",&num[i]);
}
long long nmin = inf;
long long sum = 0;
for(int i=0;i<n;i++){
sum += num[i];
nmin = min(nmin,sum);
}
if(nmin >=0 && sum >=0){
printf("-1\n");
return 0;
}
if(sum >= 0 && nmin < 0){
if(nmin + H <= 0){
long long HH = H;
for(int i=0;i<n;i++){
HH += num[i];
if(HH <= 0){
printf("%d\n",i+1);
return 0;
}
}
}else{
printf("-1\n");
return 0;
}
}
if(H + nmin <= 0){
long long HH = H;
for(int i=0;i<n;i++){
HH += num[i];
if(HH <= 0){
printf("%d\n",i+1);
return 0;
}
}
}
// sum < 0 && nmin < 0
// H = k * sum + nmin + mod;
long long HH = H + nmin;
long long mod = HH % (-1*sum);
long long ans = HH / (-1*sum) * n;
HH = mod - nmin;
int cnt = 0;
while(HH > 0){
HH += num[cnt%n];
cnt ++ ;
ans ++ ;
}
printf("%lld\n",ans);
return 0;
}
codeforces:1141E(implement)
最新推荐文章于 2019-07-21 22:17:33 发布