제출 #1117547

#제출 시각아이디문제언어결과실행 시간메모리
1117547heeheeheehaaw나일강 (IOI24_nile)C++17
67 / 100
2058 ms11472 KiB
#include <iostream> #include <fstream> #include <vector> #include <cmath> #include <algorithm> #include "nile.h" using namespace std; struct art { long long w,a,b; }; bool compare(art a,art b) { return a.w<b.w; } vector<art> artifact; long long sol(vector<art> v,long long d) { long long price=0; for(long long i=0;i<v.size();i++) { price+=v[i].b; } if((int)v.size()%2==0) return price; long long minn=999999999999999999; for(long long i=0;i<v.size();i++) { if(((i==0) or (i==((int)v.size()-1))) or (abs(v[i - 1].w-v[i + 1].w)<=d) or (((i + 1) % 2) == 1)) minn=min(minn,(long long)(v[i].a-v[i].b)); } return price+minn; } vector<long long> calculate_costs(vector<int> W, vector<int> A, vector<int> B, vector<int> E) { long long n = W.size(); for(long long i=0;i<n;i++) { art x; x.w = W[i]; x.a = A[i]; x.b = B[i]; artifact.push_back(x); } sort(artifact.begin(),artifact.end(),compare); long long q = E.size(); long long price=0; vector<long long> R; for(long long matale = 0; matale < q; matale++) { price=0; long long d = E[matale]; vector<art> v; v.push_back(artifact[0]); for(long long i=1;i<artifact.size();i++) { if(abs(artifact[i-1].w-artifact[i].w)<=d) v.push_back(artifact[i]); else price+=sol(v,d),v.clear(),v.push_back(artifact[i]); } price+=sol(v,d); R.push_back(price); } return R; } /* 5 15 5 1 12 4 2 2 5 2 10 6 3 21 3 2 3 5 9 1 */

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

nile.cpp: In function 'long long int sol(std::vector<art>, long long int)':
nile.cpp:24:24: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<art>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     for(long long i=0;i<v.size();i++)
      |                       ~^~~~~~~~~
nile.cpp:31:24: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<art>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |     for(long long i=0;i<v.size();i++)
      |                       ~^~~~~~~~~
nile.cpp: In function 'std::vector<long long int> calculate_costs(std::vector<int>, std::vector<int>, std::vector<int>, std::vector<int>)':
nile.cpp:60:28: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<art>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |         for(long long i=1;i<artifact.size();i++)
      |                           ~^~~~~~~~~~~~~~~~
#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...