제출 #1233929

#제출 시각아이디문제언어결과실행 시간메모리
1233929nguyenletrungSnail (NOI18_snail)C++20
37 / 100
1 ms328 KiB
#include<bits/stdc++.h>
#define ll long long
#define fi first
#define se second
#define pb push_back
using namespace std;
ll h,n,a[100005],mx,mn=1e18,s,ss;
int main()
{
	ios_base::sync_with_stdio(0);
	cin.tie(0);cout.tie(0);
//	freopen(".inp","r",stdin);
//	freopen(".out","w",stdout);
	cin>>h>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		s+=a[i];
		if(s>=h)
		{
			cout<<0<<' '<<i-1;
			return 0;
		}
		if(s<0) s=0;
		mx=max(mx,s);
	}
	
	ss=s;
	for(int i=1;i<=n;i++)
	{
		ss+=a[i];
		if(ss>=h)
		{
			cout<<1<<' '<<i-1;
			return 0;
		}
		if(ss<0) ss=0;
	}
	
	if(ss==s) cout<<-1<<' '<<-1;
	else
	{
		ll day=(h-mx)/s;
		
		s=day*s;
		for(int i=1;i<=n;i++)
		{
			s+=a[i];
			if(s>=h)
			{
				cout<<day<<' '<<i-1;
				return 0;
			}
		}
		
		for(int i=1;i<=n;i++)
		{
			s+=a[i];
			if(s>=h)
			{
				cout<<day+1<<' '<<i-1;
				return 0;
			}
		}
		
		for(int i=1;i<=n;i++)
		{
			s+=a[i];
			if(s>=h)
			{
				cout<<day+2<<' '<<i-1;
				return 0;
			}
		}
		
		
		
	}
	
	
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...