Submission #1224068

#TimeUsernameProblemLanguageResultExecution timeMemory
1224068GabrielNile (IOI24_nile)C++20
23 / 100
2095 ms11388 KiB
#include "nile.h"
#include "bits/stdc++.h"
using namespace std;
struct Artefacto{
  long long Peso, a, b;
};
bool Quinto = 1;
bool operator<(const Artefacto& a, const Artefacto& b){
  if(Quinto) return a.Peso < b.Peso;
}
vector<Artefacto> Artefactos;
vector< vector<long long> > PD;
vector<long long> calculate_costs(vector<int> w, vector<int> a, vector<int> b, vector<int> e) {
  int n = a.size(), q = e.size();
  for(long long i = 0; i < n; i++){
    Artefacto Nuevo;
    Nuevo.Peso = w[i];
    Nuevo.a = a[i];
    Nuevo.b = b[i];
    Artefactos.push_back(Nuevo);
  }
  sort(Artefactos.begin(), Artefactos.end());
  long long r = 0;
  vector<long long> Retorno;
  for(auto E: e){
    vector< vector<long long> > PD(n + 1, vector<long long>(3, 2222222222222222));
    PD[n][0] = 0;
    for(long long i = n - 1; i > -1; i--){
      for(long long j = 0; j < 3; j++){
        if(j == 0) PD[i][j] = min(PD[i + 1][j] + Artefactos[i].a, PD[i + 1][1] + Artefactos[i].b);
        if(j == 1){
          if(i - j > -1 and abs(Artefactos[i].Peso - Artefactos[i - j].Peso) <= E) PD[i][j] = min(PD[i + 1][j] + Artefactos[i].a, PD[i + 1][0] + Artefactos[i].b);
          else PD[i][j] = 2222222222222222;
        }
        if(j == 2){
          if(i - j > -1 and abs(Artefactos[i].Peso - Artefactos[i - j].Peso) <= E) PD[i][j] = PD[i + 1][0] + Artefactos[i].b;
          else PD[i][j] = 2222222222222222;
        }
      }
    }
    Retorno.push_back(PD[0][0]);
  }
  return Retorno;
}

Compilation message (stderr)

nile.cpp: In function 'bool operator<(const Artefacto&, const Artefacto&)':
nile.cpp:10:1: warning: control reaches end of non-void function [-Wreturn-type]
   10 | }
      | ^
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...