Submission #1211063

#TimeUsernameProblemLanguageResultExecution timeMemory
1211063moondarksideRice Hub (IOI11_ricehub)C++20
Compilation error
0 ms0 KiB
#include <iostream>
#include<bits/stdc++.h>
using namespace std;

long long findRiceFromSpot(long long pos,vector<long long>& CarryValuesR,vector<long long>& CarryValuesL,long long X[],long long money){
    long long Md=min(pos,(long long)CarryValuesR.size()-pos-1);
    long long r=(long long)CarryValuesR.size();
    long long mD=0;
    long long best=1;
    while(Md>mD){
        long long mid=(Md+mD-1)/2+1;
        long long price=CarryValuesR[pos]-CarryValuesR[pos-mid]-(X[pos]-X[pos-mid])*(pos-mid);
        price+=CarryValuesL[r-1-pos]-CarryValuesL[r-1-pos-mid]-(X[pos+mid]-X[pos])*(r-1-pos-mid);
        if(price>money){
            Md=mid-1;
        }
        else{
            mD=mid;
        }
    }
    best=best+mD*2;
    if(pos-mD>0){
       long long price=CarryValuesR[pos]-CarryValuesR[pos-mD-1]-(X[pos]-X[pos-mD-1])*(pos-mD-1);
       price+=CarryValuesL[r-1-pos]-CarryValuesL[r-1-pos-mD]-(X[pos+mD]-X[pos])*(r-1-pos-mD);
       if(price<=money){
           best=best+1;
       }
    }
    return best;
}

long long besthub(int R,intL,int X[],long long B){
    std::vector<long long> CarryValuesR;
    std::vector<long long> CarryValuesL;
    CarryValuesR.push_back(0);
    CarryValuesL.push_back(0);
    
    for(long long i=1;i<R;i++){
        long long price=CarryValuesR[i-1]+(X[i]-X[i-1])*(i);
        CarryValuesR.push_back(price);
    }
    
    for(long long i=1;i<R;i++){
        long long price=CarryValuesL[i-1]+(X[R-i]-X[R-i-1])*(i);
        CarryValuesL.push_back(price);
    }
    long long Maximum=0;
    for(long long i=0;i<R;i++){
        Maximum=max(Maximum,findRiceFromSpot(i,CarryValuesR,CarryValuesL,X,B));
    }
    return Maximum;
    
}

Compilation message (stderr)

ricehub.cpp:32:25: error: 'intL' has not been declared
   32 | long long besthub(int R,intL,int X[],long long B){
      |                         ^~~~
ricehub.cpp: In function 'long long int besthub(int, int, int*, long long int)':
ricehub.cpp:49:74: error: cannot convert 'int*' to 'long long int*'
   49 |         Maximum=max(Maximum,findRiceFromSpot(i,CarryValuesR,CarryValuesL,X,B));
      |                                                                          ^
      |                                                                          |
      |                                                                          int*
ricehub.cpp:5:116: note:   initializing argument 4 of 'long long int findRiceFromSpot(long long int, std::vector<long long int>&, std::vector<long long int>&, long long int*, long long int)'
    5 | long long findRiceFromSpot(long long pos,vector<long long>& CarryValuesR,vector<long long>& CarryValuesL,long long X[],long long money){
      |                                                                                                          ~~~~~~~~~~^~~