제출 #1333136

#제출 시각아이디문제언어결과실행 시간메모리
1333136activedeltorre모임들 (IOI18_meetings)C++20
컴파일 에러
0 ms0 KiB
#include "meetings.h"
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <vector>

using namespace std;
long long v[100005];
long long aib[100015];
int nmax=100005;
long long rasp[100005];
vector<pair<int,int> > qu[100005];
void update(int poz,long long val)
{
    while(poz<=nmax)
    {
      aib[poz]=max(aib[poz],val);
      poz=poz+(poz&(-poz));
    }
}
long long query(int poz)
{
  long long sum=0;
    while(poz)
    {
      sum=max(sum,aib[poz]);
      poz=poz-(poz&(-poz));
    }
    return sum;
}
std::vector<long long> minimum_costs(std::vector<int> H, std::vector<int> L,
                                     std::vector<int> R) {
  int Q = L.size();
  int n=H.size();
  for(int i=1;i<=n;i++)
  {
    v[i]=H[i-1];
  }
  for(int i=0;i<Q;i++)
  {
    qu[L[i]+1].push_back({R[i]+1,i});
  }
  int lung=0;
  for(int st=n;st>=1;st--)
  {
    if(v[st]==1)
    {
      lung++;
    }
    else
    {
        int poz=st;
        for(int j=1;j<=lung;j++)
        {
            update(st+j,j);
        }
      lung=0;
    }
    for(auto j:qu[st])
    {
      if(j.first<=st+lung-1)
      {
        rasp[j.second]=j.first-st+1;
      }
      else
      {
        rasp[j.second]=2*(j.second-st+1)-max(lung,query(j.first));
      }
    }
  }
  vector<long long>rez;
  for(int i=0;i<Q;i++)
  {
    rez.push_back(rasp[i]);
  }
  return rez;
}

컴파일 시 표준 에러 (stderr) 메시지

meetings.cpp: In function 'std::vector<long long int> minimum_costs(std::vector<int>, std::vector<int>, std::vector<int>)':
meetings.cpp:67:45: error: no matching function for call to 'max(int&, long long int)'
   67 |         rasp[j.second]=2*(j.second-st+1)-max(lung,query(j.first));
      |                                          ~~~^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/13/vector:62,
                 from meetings.h:3,
                 from meetings.cpp:1:
/usr/include/c++/13/bits/stl_algobase.h:257:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  257 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:257:5: note:   template argument deduction/substitution failed:
meetings.cpp:67:45: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   67 |         rasp[j.second]=2*(j.second-st+1)-max(lung,query(j.first));
      |                                          ~~~^~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  303 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/13/bits/stl_algobase.h:303:5: note:   template argument deduction/substitution failed:
meetings.cpp:67:45: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
   67 |         rasp[j.second]=2*(j.second-st+1)-max(lung,query(j.first));
      |                                          ~~~^~~~~~~~~~~~~~~~~~~~~