Submission #39829

#TimeUsernameProblemLanguageResultExecution timeMemory
39829cheater2kHighway design (CEOI12_highway)C++14
100 / 100
2 ms3264 KiB
#include <bits/stdc++.h> #include "office.h" using namespace std; int n, a, b, c; int query(int x, int y, int z) { return isOnLine(x + 1, y + 1, z + 1); } void brute() { for (a = 0; a < 5; ++a) { for (b = a + 1; b < 5; ++b) { for (c = b + 1; c < 5; ++c) { if (!query(a, b, c)) continue; int x = 0; while(x == a || x == b || x == c) ++x; int y = 10 - a - b - x; Answer(a + 1, b + 1, x + 1, y + 1); } } } } void solve() { vector<int> line; vector<int> rem; for (int i = 0; i < n; ++i) if (i != a && i != b && i != c) rem.push_back(i); for (int i = 0; i < rem.size(); i += 2) { if (line.size() >= 2) break; int x = rem[i], y = (i == rem.size() - 1) ? b : rem[i + 1]; if (query(a, x, y)) continue; if (!query(a, b, x)) { line.push_back(x); } else { line.push_back(y); } } assert(line.size() >= 2); Answer(a + 1, b + 1, line[0] + 1, line[1] + 1); } int main() { n = GetN(); a = -1, b = -1, c = -1; int p = query(0, 1, 2); if (p) { a = 0; b = 1; c = 2; solve(); } int q = query(2, 3, 4); if (q) { a = 2; b = 3; c = 4; solve(); } brute(); }

Compilation message (stderr)

highway.cpp: In function 'void solve()':
highway.cpp:30:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for (int i = 0; i < rem.size(); i += 2) {
                     ^
highway.cpp:32:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     int x = rem[i], y = (i == rem.size() - 1) ? b : rem[i + 1];
                            ^
office.c: In function 'int isOnLine(int, int, int)':
office.c:85:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(0, "Protocol error");
                             ^
office.c:88:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(0, "Protocol error");
                             ^
office.c:92:37: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(false, "Too many questions");
                                     ^
office.c:83:7: warning: unused variable 'i' [-Wunused-variable]
   int i;
       ^
office.c: In function 'void Answer(int, int, int, int)':
office.c:123:29: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
     _Fin(0, "Protocol error");
                             ^
office.c:128:44: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
       if( (-_Apa[na1]==_N-3) && (na2!=na1) && (nb2!=na1) ||
                                            ^
office.c:130:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(true, "Correct");
                              ^
office.c:132:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(false, "Wrong answer");
                                    ^
office.c:134:44: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
       if( (-_Apa[na2]==_N-3) && (na1!=na2) && (nb1!=na2) ||
                                            ^
office.c:136:30: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(true, "Correct");
                              ^
office.c:138:36: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
          _Fin(false, "Wrong answer");
                                    ^
office.c:140:33: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
       _Fin(false, "Wrong answer");
                                 ^
office.c:142:23: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
   _Fin(true, "Correct");
                       ^
office.c:120:27: warning: unused variable 'pont' [-Wunused-variable]
   int na1, nb1, na2, nb2, pont;
                           ^
office.c: In function 'void _doInit()':
office.c:33:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%d", &_N);
                     ^
#Verdict Execution timeMemoryGrader output
Fetching results...