제출 #1245586

#제출 시각아이디문제언어결과실행 시간메모리
1245586alexaaaNile (IOI24_nile)C++20
0 / 100
2096 ms3136 KiB
#include<iostream> #include<vector> #include<algorithm> #include<numeric> #include "nile.h" using namespace std; std::vector<long long> calculate_costs( std::vector<int> W, std::vector<int> A, std::vector<int> B, std::vector<int> E){ vector<long long> answer; vector<int> extra_cost; vector<int> ec_i(W.size()); int sum = 0; for(int i = 0; W.size(); i++){ sum += W[i]; } iota(ec_i.begin(),ec_i.end(),0); for(int i = 0; i < W.size(); i++){ extra_cost.push_back(A[i]-B[i]); } sort(ec_i.begin(),ec_i.end(),[&](int i, int j){ if(extra_cost[i] == extra_cost[j]){ return i<j; } else{ return extra_cost[i] < extra_cost[j]; } }); for(int i = 0; i < E.size(); i++){ int D = E[i]; long long cost = 0; if(W.size()%2 == 0){ for(int j = 0;j < W.size(); j++){ cost+=B[j]; } answer.push_back(cost); } else{ int skip; if(sum == W.size()){ skip = ec_i[0]; for(int j = 0; j < W.size(); j++){ if(j == skip){ continue; } cost += B[j]; } cost += A[skip]; answer.push_back(cost); } else{ if(D>= 2){ skip = ec_i[0]; for(int k = 0; k < W.size(); k++){ if(k == skip){ continue; } cost += B[k]; } cost += A[skip]; answer.push_back(cost); } else{ for(int e = 0; e < W.size();e++){ if(ec_i[e]%2 == 0){ skip = ec_i[e]; break; } } for(int l = 0; l < W.size(); l++){ if(l == skip){ continue; } cost += B[l]; } cost += A[skip]; answer.push_back(cost); } } } } return answer; }
#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...