제출 #606401

#제출 시각아이디문제언어결과실행 시간메모리
606401CyberCowCounting Mushrooms (IOI20_mushrooms)C++17
0 / 100
1 ms296 KiB
#include "mushrooms.h" #include <vector> using namespace std; vector<int> a, b; int nsh[20006]; int count_mushrooms(int n) { int ans = 1, gt = 0; if (n <= 250) { for (int i = 1; i < n - 1; i += 2) { ans += 2 - use_machine({ i, 0, i + 1 }); } if (n % 2 == 0) ans += 1 - use_machine({ 0, n - 1 }); return ans; } int st = 0, st1 = 0; if (use_machine({ 0, 1 })) { st = 1; if (use_machine({ 0, 2 })) st1 = 1; } if(st == 0) { a.push_back(0); a.push_back(1); for (int i = 2; i < 200; i+=2) { int qan = use_machine({ 0, i, 1, i + 1 }); if (qan == 0) { a.push_back(i); a.push_back(i + 1); } else if(qan == 1) { a.push_back(i); b.push_back(i + 1); } else if (qan == 2) { b.push_back(i); a.push_back(i + 1); } else { b.push_back(i); b.push_back(i + 1); } } } else if (st == 1 && st1 == 0) { a.push_back(0); b.push_back(1); a.push_back(2); for (int i = 3; i < 200; i += 2) { int qan = use_machine({ 0, i, 2, i + 1 }); if (qan == 0) { a.push_back(i); a.push_back(i + 1); } else if (qan == 1) { a.push_back(i); b.push_back(i + 1); } else if (qan == 2) { b.push_back(i); a.push_back(i + 1); } else { b.push_back(i); b.push_back(i + 1); } } } else { a.push_back(0); b.push_back(1); b.push_back(2); for (int i = 3; i < 200; i += 2) { int qan = use_machine({ 1, i, 2, i + 1 }); if (qan == 0) { a.push_back(i); a.push_back(i + 1); } else if (qan == 1) { a.push_back(i); b.push_back(i + 1); } else if (qan == 2) { b.push_back(i); a.push_back(i + 1); } else { b.push_back(i); b.push_back(i + 1); } } } int j; vector<int> x; for (int i = 201; i < n; i++) { x.clear(); if (a.size() > b.size()) { int vr = 0; for (j = 0; j < a.size() && i + j < n; j++) { x.push_back(a[j]); x.push_back(i + j); vr = j; } int f = use_machine(x); ans += vr - f / 2; if (f % 2) { b.push_back(x.back()); } else { a.push_back(x.back()); ans++; } } else { int vr = 0; for (j = 0; j < b.size() && i + j < n; j++) { x.push_back(b[j]); x.push_back(i + j); vr = j; } int f = use_machine(x); ans += f / 2; if (f % 2) { a.push_back(x.back()); ans++; } else { b.push_back(x.back()); } } } return ans; }

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

mushrooms.cpp: In function 'int count_mushrooms(int)':
mushrooms.cpp:124:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  124 |    for (j = 0; j < a.size() && i + j < n; j++)
      |                ~~^~~~~~~~~~
mushrooms.cpp:145:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  145 |    for (j = 0; j < b.size() && i + j < n; j++)
      |                ~~^~~~~~~~~~
mushrooms.cpp:144:8: warning: variable 'vr' set but not used [-Wunused-but-set-variable]
  144 |    int vr = 0;
      |        ^~
mushrooms.cpp:8:15: warning: unused variable 'gt' [-Wunused-variable]
    8 |  int ans = 1, gt = 0;
      |               ^~
#Verdict Execution timeMemoryGrader output
Fetching results...