Submission #788303

#TimeUsernameProblemLanguageResultExecution timeMemory
788303mindiyak쌀 창고 (IOI11_ricehub)C++14
17 / 100
469 ms262144 KiB
#include "ricehub.h"
#include <iostream>
#include <vector>
#include <set>

using namespace std;

#define ll long long

int besthub(int R, int L, int X[], long long B)
{
  ll ans = 0;
  vector<multiset<int>> pos(L+1,multiset<int>());
  for(ll i=0;i<R;i++){
    // cout << max((ll)1,X[i]-B) << " " << min((ll)L,X[i]+B) << endl;
    for(ll j=max((ll)1,X[i]-B);j<=min((ll)L,X[i]+B);j++){
      // cout << j << " " << abs(X[i]-j) << endl;
      pos[j].insert(abs(X[i]-j));
    }
    // cout << endl;
  }

  // cout << endl;

  // for(ll i=1;i<=L;i++){
  //   cout << i << " -> ";
  //   for(ll j:pos[i]){
  //       cout << j << " ";
  //   }
  //   cout << endl;
  // }

  // cout << endl;

  for(ll i=1;i<=L;i++){
    ll sum = 0;
    ll counter = 0;
    // cout << i << " " << pos[i].size() << " ";
    bool all = true;
    for(ll j:pos[i]){
      sum += j;
      if(sum>=B){
        all = false;
        // cout << " " << sum << " " << counter;
        ans = max(ans,counter);
        break;
      }
      counter++;
    }
    if(all){
      ans = max(ans,(ll)pos[i].size());
    }
    // cout << endl;
  }
  // cout << ans << endl;
  return ans;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...