제출 #424798

#제출 시각아이디문제언어결과실행 시간메모리
424798ollel저울 (IOI15_scales)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h>
#include <iostream>
#include "scales.h"
using namespace std;

#define rep(i,a,b) for(int i = a; i < b; i++)
#define pb push_back
#define lso(x) x&(-x)

typedef long long ll;
typedef vector<int> vi;
typedef vector<vi> vvi;

int t;

// int getLightest(vi x) {
//   cout << "lightest:";
//   rep(i,0,3) cout << x[i] << " ";cout<<endl;
//   int ans; cin >> ans; return ans;
// }
// int getNextLightest(vi x) {
//   cout << "next lightest:";
//   rep(i,0,4) cout << x[i] << " ";cout<<endl;
//   int ans; cin >> ans; return ans;
// }
// int getMedian(vi x) {
//   cout << "Median:";
//   rep(i,0,3) cout << x[i] << " ";cout<<endl;
//   int ans; cin >> ans; return ans;
// }

void init(int T) {t = T;}

// void answer(vi x) {rep(i,0,6) cout << x[i] << " ";}

void orderCoins() {
  vi first(3), second(3);
  first[0] = getLightest(1, 2, 3);
  first[1] = getMedian(1, 2, 3);
  rep(i, 1, 4) if (i != first[0] && i != first[1]) first[2] = i;

  second[0] = getLightest(4, 5, 6);
  second[1] = getMedian(4, 5, 6);
  rep(i, 4, 7) if (i != second[0] && i != second[1]) second[2] = i;

  int fi = 0, si = 0;
  vi ordered;
  bool swp = false;

  if (ans == second[1]) {
    swp = true;
    swap(first, second);
  }
  int ans = getNextLightest(second[0], second[1], second[2], first[0]);
  if (ans == second[0] || swp) {
    ordered.pb(first[0]);
    ordered.pb(second[0]);

    int x = getNextLightest(second[2], second[1], first[2], first[1]);

    if (x == second[2]) {
        ordered.pb(second[1]);
        ordered.pb(first[1]);
        ordered.pb(first[2]);
        ordered.pb(second[2]);
    }

    else if (x == second[1]) {
      ordered.pb(first[1]);
      ordered.pb(second[1]);
      int y = getNextLightest(first[0], second[2], first[2], second[1]);
      if (y == first[2]) {
        ordered.pb(first[2]);
        ordered.pb(second[2]);
      } else {
        ordered.pb(second[2]);
        ordered.pb(first[2]);
      }
    }

    else if (x == first[2]) {
      int y = getMedian(first[1], second[2], second[3]) {
        if (y == second[2]) {
          ordered.pb(first[1]);
          ordered.pb(first[2]);
          ordered.pb(second[1]);
          ordered.pb(second[2]);
        } else if (y == first[1]) {
          ordered.pb(second[1]);
          ordered.pb(first[1]);
          ordered.pb(first[2]);
          ordered.pb(second[2]);
        } else {
          ordered.pb(second[1]);
          ordered.pb(second[2]);
          ordered.pb(first[1]);
          ordered.pb(first[2]);
        }
      }
    }

  }
  else {
    ordered.pb(second[0]);
    ordered.pb(second[1]);
    ordered.pb(first[0]);

    int med = getMedian(first[1], first[2], second[2]);
    if (med == first[1]) {
      ordered.pb(second[2]);
      ordered.pb(first[1]);
      ordered.pb(first[2]);
    } else if (med == first[2]) {
      ordered.pb(first[1]);
      ordered.pb(first[2]);
      ordered.pb(second[2]);
    } else {
      ordered.pb(first[1]);
      ordered.pb(second[2]);
      ordered.pb(first[2]);
    }
  }
  int o[6];
  rep(i,0,6) o[i] = ordered[i];
  answer(o);
}


// int main(){
//   orderCoins();
// }

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

scales.cpp: In function 'void orderCoins()':
scales.cpp:50:7: error: 'ans' was not declared in this scope; did you mean 'abs'?
   50 |   if (ans == second[1]) {
      |       ^~~
      |       abs
scales.cpp:82:57: error: expected ',' or ';' before '{' token
   82 |       int y = getMedian(first[1], second[2], second[3]) {
      |                                                         ^
scales.cpp:82:11: warning: unused variable 'y' [-Wunused-variable]
   82 |       int y = getMedian(first[1], second[2], second[3]) {
      |           ^
scales.cpp:46:7: warning: unused variable 'fi' [-Wunused-variable]
   46 |   int fi = 0, si = 0;
      |       ^~
scales.cpp:46:15: warning: unused variable 'si' [-Wunused-variable]
   46 |   int fi = 0, si = 0;
      |               ^~