제출 #1245597

#제출 시각아이디문제언어결과실행 시간메모리
1245597alexaaa나일강 (IOI24_nile)C++20
컴파일 에러
0 ms0 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());
    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(W[0] == 1 && W[1] == 1){
                skip = ec_i[0];
                for(int m = 0; m < W.size(); m++){
                    if(m == skip){
                        continue;
                    }
                    cost += B[m];
                }
                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{
                if(ec_i[0]-1 > 0 && ec_i[0]+1<W.size()){
                    if(W[ec_i[0]-1]==1 & W[])
                    
                }
                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;
        
}

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

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:68:44: error: expected primary-expression before ']' token
   68 |                     if(W[ec_i[0]-1]==1 & W[])
      |                                            ^
nile.cpp:70:17: error: expected primary-expression before '}' token
   70 |                 }
      |                 ^