Submission #1074803

#TimeUsernameProblemLanguageResultExecution timeMemory
1074803jundiSnail (NOI18_snail)C++17
62 / 100
2 ms616 KiB
#include <bits/stdc++.h> using namespace std; bool myCmp(int i, int j) { return(i>j); } void printArray(int arr[], int size){ int i;for (i = 0; i < size; i++) { cout << arr[i] << " ";cout << endl; } }//means "if n is non-zero" or true #define asort(a,x) sort(a,a+x,myCmp)//big to small #define pb(x) push_back(x) #define vsort(v) sort(v.begin(),v.end()) //string=vector #define sp " " #define ll long long int ll t,n; void solve(){//谢 cin>>t>>n;ll a[n],cnt=0,tmp=0,tmp2=0,tp=n; for(ll i=0;i<n;i++){ cin>>a[i]; tmp+=a[i];tmp2+=a[i]; if(tmp<0){ tmp=0; } if(tmp>=t){ cout<<cnt<<" "<<i;return; } } if(tmp2<=0){ ll checker = 0; for(ll j=0;j<2;j++){ for(ll i=0;i<n;i++){ checker+=a[i]; if(checker<0) {checker = 0;} if(checker>=t){ cout<<j<<" "<<i;return;} } }cout<<-1<<" "<<-1;return; } ll highest = 0, count = tmp; for(ll i = 0; i < n; i ++){ count += a[i]; if(highest>count) { tp=i; } highest = max(highest, count); }t-=highest;cnt=t/tmp2;cnt++; if(t%tmp2!=0){ t-=(cnt-1)*tmp2;cnt++; for(int i=0;i<n;i++){ t-=a[i];tp=i; if(t<=0) { cout<<cnt<<" "<<tp;return; } } } else{ for(int i=0;i<n;i++){ if(a[i]>0){ tp=i; } } } cout<<cnt<<" "<<tp; } int main() { ios::sync_with_stdio(0);cin.tie(0); solve();cout<<endl; 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...