Submission #1071819

#TimeUsernameProblemLanguageResultExecution timeMemory
1071819zh_hSnail (NOI18_snail)C++17
100 / 100
2 ms856 KiB
#include <bits/stdc++.h> #define lint long long #define pb push_back #define mp make_pair using namespace std; lint MOD = 1e9 + 7; int INF = 1e9; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); lint height, n; cin >> height >> n; vector<lint> p; lint ave=0; lint day0 = 0; for(lint i = 0; i < n; i ++){ lint temp; cin >> temp; p.pb(temp); ave += temp; day0 += temp; if(day0 < 0){day0 = 0;} } bool check = false; lint total = 0; for(lint j = 0; j < 2; j ++){ for(lint i = 0; i < n; i ++){ total += p[i]; if(total < 0){total = 0;} // cout << total << endl; if(total >= height){check = true; cout << j << " " << i; break;} } if(total >= height){break;} } if(ave <= 0 && !check){cout << -1 << " " << -1;} else if(!check){ // cout << "hehe\n"; lint highest = 0; lint count = day0; for(lint i = 0; i < n; i ++){ count += p[i]; highest = max(highest, count); } highest -= day0; // cout << height << " " << day0 << " " << highest << " " << ave << endl; lint N = (height - day0 - highest + ave - 1)/ave; total = (N*ave)+day0; // cout << N << " " << total << endl; for(lint i = 0; i < n; i ++){ // cout << "haha "; total += p[i]; if(total >= height){ // cout << total << endl; cout << N+1 << " " << i; break; } } } return 0; } // 10 3 // 2 -10 8 // 1 0 // 5 1 // -1 // -1 -1 // 5 2 // 4 -2 // 1 0 // 3 1 // 1 // 2 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...