제출 #1205443

#제출 시각아이디문제언어결과실행 시간메모리
1205443loomSnail (NOI18_snail)C++20
100 / 100
2 ms780 KiB
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define inf 5e18

inline void solve(){
   int h, n;
   cin>>h>>n;

   int a[n], pre = 0, sum = 0, mx = 0, mn = inf;
   for(int i=0; i<n; i++){
      cin>>a[i];
      pre += a[i];
      sum = max(0ll, sum + a[i]);

      mx = max(mx, pre);
      mn = min(mn, pre);

      if(sum >= h){
         cout<<"0 "<<i;
         exit(0);
      }
   }

   if(sum + mx >= h){
      for(int i=0; i<n; i++){
         sum += a[i];
         if(sum >= h){
            cout<<"1 "<<i;
            exit(0);
         }
      }
   }

   if(sum <= -mn){
      cout<<"-1 -1";
      exit(0);
   }
   h -= sum;
   
   int k = (h-mx + pre-1)/pre;
   pre *= k;

   for(int i=0; i<n; i++){
      pre += a[i];
      if(pre >= h){
         cout<<k+1<<" "<<i;
         exit(0);
      }
   }
}

signed main(){
   ios_base::sync_with_stdio(0);
   cin.tie(NULL);cout.tie(NULL);

   solve();

   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...