Submission #1283055

#TimeUsernameProblemLanguageResultExecution timeMemory
1283055repmannHoliday (IOI14_holiday)C++20
23 / 100
10 ms1728 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int N, K;
int A[100000];
long long int findMaxAttraction(int n, int index, int k, int a[])
{
  N = n;
  K = k;
  for(int i = 0; i < N; i++) A[i] = a[i];
  ll sol = 0;
  for(int i = index; i >= 0; i--)
  {
    priority_queue <int> H;
    ll sum = 0;
    for(int j = index; j >= i; j--) {H.push(-A[j]); sum += A[j];}
    while(H.size() && (H.size() > (K - (index - i)))) {sum += H.top(); H.pop();}
    if(!H.size()) break;
    sol = max(sum, sol);
    for(int j = index + 1; H.size() && (j < N); j++)
    {
      H.push(-A[j]);
      sum += A[j];
      while(H.size() && (H.size() > (K - min(index - i + j - i, j - index + j - i)))) {sum += H.top(); H.pop();}
      sol = max(sum, sol);
    }
  }
  return sol;
}
//int main()
//{
//  int n, k, index;
//  cin >> n >> k >> index;
//  int a[n];
//  for(int i = 0; i < n; i++) cin >> a[i];
//  cout << findMaxAttraction(n, index, k, a) << '\n';
//}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...