Submission #102857

#TimeUsernameProblemLanguageResultExecution timeMemory
102857CaroLindaHoliday (IOI14_holiday)C++14
0 / 100
17 ms2816 KiB
#include <bits/stdc++.h>
#include "holiday.h"

#define lp(i,a,b,v) for(int i=a;i<b;i = i + v)
#define MAXN 100005
#define pb push_back
#define pii pair<int,int>
#define ss second
#define ff first
#define lli long long int

using namespace std;

int S ;
int D ;
int N ;

int a[MAXN] ;

multiset<int> m ;

lli d1[MAXN] , d2[MAXN] ;

lli resp ;

void tira()
{
  resp -= *m.begin() ;
  m.erase( m.begin() ) ;
  
}

void calc (int val, int cons)
{
  resp = 0 ;
  m.clear() ;
  for(int i = S ; i < min(S + cons , N ) and i>=max(0, S - cons) ; i += val)
  {
    resp += a[i] ;
    m.insert(a[i]) ;
    if(m.size() >  cons - abs(i - S)) 
    {
      if(cons-abs(i-S) + 1 != m.size() )
      {
        resp -= *m.begin() ;
        m.erase(m.begin()) ;
      }

      tira() ;

    } 
    if( val == 1 ) d1[cons] = max( resp  , d1[cons] );
    else d2[cons] = max(resp,d2[cons]) ;
  }

  // printf("%lld\n", d1[cons]) ;
  // printf("%lld\n", d2[cons]) ;

}

long long int findMaxAttraction(int n, int start, int d,
int attraction[])
{ 
  lp(i,0,n,1) a[i] = attraction[i] ;
  S = start ;
  N = n ;
  D = d ;
  calc(1,d) ;
  return d1[d] ;
}

Compilation message (stderr)

holiday.cpp: In function 'void calc(int, int)':
holiday.cpp:41:17: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(m.size() >  cons - abs(i - S)) 
        ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
holiday.cpp:43:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
       if(cons-abs(i-S) + 1 != m.size() )
          ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
grader.cpp: In function 'int main()':
grader.cpp:7:12: warning: variable 'n_s' set but not used [-Wunused-but-set-variable]
     int i, n_s;
            ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...