답안 #958757

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
958757 2024-04-06T14:36:15 Z salmon 코알라 (APIO17_koala) C++14
컴파일 오류
0 ms 0 KB
#include <bits/stdc++.h>
#include "koala.h"
using namespace std;

int minValue(int N, int W) {
    int res[N];
    int in[N];

    for(int i = 0; i < N; i++){
        in[i] = 0;
    }
    in[0] = 1;

    playRound(in,res);

    int p = -1;
    for(int i = 0; i < N; i++){
        if(res[i] <= in[i]){
            p = i;
        }
    }

    return p;
}

int maxValue(int N, int W) {
    set<int> sat;
    int res[N];
    int in[N];

    for(int i = 0; i < N; i++){
        sat.insert(i);
        in[i] = 0;
    }

    while(sat.size() != 1){
        int num = 100 / sat.size();

        for(int i = 0; i < N; i++){
            in[i] = 0;
        }

        for(int i : sat){
            in[i] = num;
        }

        playRound(in,res);

        for(int i = 0; i < N; i++){
            if(res[i] <= in[i] && sat.find(i) != sat.end()){
                sat.erase(i);
            }
        }
    }



    for(int i : sat) return i;
}

//9 5 3
int greaterValue(int N, int W) {
    int in[N];
    int res[N];

    int it = minValue(N, W);

    if(it == 0) return 1;
    if(it == 1) return 0;

    for(int i = 0; i < N; i++){
        in[i] = 0;
    }

    in[0] = 4;
    in[1] = 4;

    playRound(in,res);

    if(res[0] > in[0] && res[1] <= in[1]) return 0;
    if(res[1] > in[1] && res[0] <= in[0]) return 1;

    if(res[0] > in[0]){
        in[0] = 8;
        in[1] = 8;
    }
    else{
        in[0] = 2;
        in[1] = 2;
    }

    playRound(in,res);

    if(res[0] > in[0] && res[1] <= in[1]) return 0;
    if(res[1] > in[1] && res[0] <= in[0]) return 1;

    in[0] = 2;
    in[1] = 2;

    playRound(in,res);

    if(res[0] > in[0] && res[1] <= in[1]) return 0;
    if(res[1] > in[1] && res[0] <= in[0]) return 1;
}

bool greater(int a, int b){
    int in[N];
    int res[N];

    for(int i = 0; i < 100; i++){
        in[i] = 0;
    }

    in[a] = 100;
    in[b] = 100;

    playRound(in,res);

    return in[b] < res[b];
}

void allValues(int N, int W, int *P) {
    if (W == 2*N) {
        vector<int> v;

        for(int i = 0; i < N; i++){
            v.push_back(i);
        }

        sort(v.begin(),v.end(),greater());

        for(int i = 0; i < N; i++){
            P[v[i]] = i + 1;
        }

    } else {
        // TODO: Implement Subtask 5 solution here.
        // You may leave this block unmodified if you are not attempting this
        // subtask.
    }
}

Compilation message

koala.cpp: In function 'bool greater(int, int)':
koala.cpp:107:12: error: 'N' was not declared in this scope
  107 |     int in[N];
      |            ^
koala.cpp:111:9: error: 'in' was not declared in this scope; did you mean 'i'?
  111 |         in[i] = 0;
      |         ^~
      |         i
koala.cpp:114:5: error: 'in' was not declared in this scope; did you mean 'yn'?
  114 |     in[a] = 100;
      |     ^~
      |     yn
koala.cpp:117:18: error: 'res' was not declared in this scope
  117 |     playRound(in,res);
      |                  ^~~
koala.cpp: In function 'void allValues(int, int, int*)':
koala.cpp:130:32: error: reference to 'greater' is ambiguous
  130 |         sort(v.begin(),v.end(),greater());
      |                                ^~~~~~~
In file included from /usr/include/c++/10/string:48,
                 from /usr/include/c++/10/bits/locale_classes.h:40,
                 from /usr/include/c++/10/bits/ios_base.h:41,
                 from /usr/include/c++/10/ios:42,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from koala.cpp:1:
/usr/include/c++/10/bits/stl_function.h:337:12: note: candidates are: 'template<class _Tp> struct std::greater'
  337 |     struct greater;
      |            ^~~~~~~
koala.cpp:106:6: note:                 'bool greater(int, int)'
  106 | bool greater(int a, int b){
      |      ^~~~~~~
koala.cpp: In function 'int maxValue(int, int)':
koala.cpp:27:14: warning: control reaches end of non-void function [-Wreturn-type]
   27 |     set<int> sat;
      |              ^~~
koala.cpp: In function 'int greaterValue(int, int)':
koala.cpp:104:1: warning: control reaches end of non-void function [-Wreturn-type]
  104 | }
      | ^