제출 #415149

#제출 시각아이디문제언어결과실행 시간메모리
415149schse모임들 (IOI18_meetings)C++17
19 / 100
3199 ms786436 KiB
#include <bits/stdc++.h>
using namespace std;
#ifndef EVAL
#include "grader.cpp"
#endif
#include "meetings.h"

vector<vector<long long>> prefsum;

long long calcscore(int l, int r, int p, std::vector<int> const &H)
{
  return prefsum[p][l] + prefsum[p][r] - H[p];
}

long long findmin(int l, int r, std::vector<int> const &H)
{
  long long mx = INT64_MAX;
  for (int i = l; i <= r; i++)
  {
    mx = min(mx, calcscore(l, r, i, H));
  }
  return mx;
}

void calcpref(vector<int> const &H)
{
  prefsum.resize(H.size(), vector<long long>(H.size(), 0));
  for (int i = 0; i < H.size(); i++)
  {
    int mx = 0;
    long long sum = 0;
    for (int e = i; e < H.size(); e++)
    {
      mx = max(mx, H[e]);
      prefsum[i][e] = sum += mx;
    }
    mx = 0;
    sum = 0;
    for (int e = i; e >= 0; e--)
    {
      mx = max(mx, H[e]);
      prefsum[i][e] = sum += mx;
    }
  }
}

std::vector<long long> minimum_costs(std::vector<int> H,
                                     std::vector<int> L,
                                     std::vector<int> R)
{
  calcpref(H);

  int Q = L.size();
  std::vector<long long> C(Q);
  for (int j = 0; j < Q; ++j)
  {
    C[j] = findmin(L[j], R[j], H);
  }
  return C;
}

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

meetings.cpp: In function 'void calcpref(const std::vector<int>&)':
meetings.cpp:28:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   28 |   for (int i = 0; i < H.size(); i++)
      |                   ~~^~~~~~~~~~
meetings.cpp:32:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   32 |     for (int e = i; e < H.size(); e++)
      |                     ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...