Submission #961892

#TimeUsernameProblemLanguageResultExecution timeMemory
961892IUA_HasinHoliday (IOI14_holiday)C++17
23 / 100
10 ms1696 KiB
#include"holiday.h" #include <bits/stdc++.h> #define endl "\n" #define yeap cout<<"YES"<<endl #define nope cout<<"NO"<<endl #define ll long long using namespace std; const ll N = 101; ll vis[N]; long long int findMaxAttraction(int n, int start, int d, int attraction[]) { ll sum = 0; for(int i=0; i<n; i++){ sum = sum+attraction[i]; } if(start==0){ if(d>=(2*n-1)){ return sum; } else if(d<=2){ ll ans = attraction[0]; if(d==0){ return 0; } else { if(d==1){ return ans; } else if(d==2){ ll b = attraction[1]; ans = max(ans, b); return ans; } } } else { ll a = min(d-1, n-1); ll b; if(d%2==0){ b = (d/2)-1; } else { b = (d-1)/2; } // cout << a << " " << b <<endl; for(int i=0; i<b; i++){ ll a = attraction[i]; vis[a]++; } ll ans1 = 0; for(int i=b; i<=a; i++){ ll a = attraction[i]; ll extr = d-i-1; ll ans = 0; // cout << extr << endl; for(int i=100; i>=0; i--){ if(vis[i]>0){ if(extr<=vis[i]){ ans = ans+i*extr; break; } else { ans = ans+i*vis[i]; extr = extr-vis[i]; } } } ans = ans+attraction[i]; // cout<<ans<<endl; ans1 = max(ans1, ans); vis[a]++; } // for(int i=0; i<100; i++){ // cout << vis[i] << " "; // } // cout<<endl; return ans1; } } }

Compilation message (stderr)

holiday.cpp: In function 'long long int findMaxAttraction(int, int, int, int*)':
holiday.cpp:80:1: warning: control reaches end of non-void function [-Wreturn-type]
   80 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...