QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#131684 | #6394. Turn on the Light | ClHg2 | WA | 1ms | 3484kb | C++14 | 1.7kb | 2023-07-27 20:57:07 | 2023-07-27 20:57:10 |
Judging History
answer
#include <array>
#include <cstddef>
#include <cstdint>
#include <cstdlib>
#include <fstream>
#include <iostream>
#include <string>
namespace {
using std::cin;
using std::cout;
using std::endl;
using std::int64_t;
using std::size_t;
namespace base {
template <typename T, size_t... sizes>
struct NestedArray {};
template <typename T, size_t size, size_t... sizes>
struct NestedArray<T, size, sizes...> {
using Type = std::array<typename NestedArray<T, sizes...>::Type, size>;
};
template <typename T>
struct NestedArray<T> {
using Type = T;
};
template <typename T, size_t... sizes>
using Array = typename NestedArray<T, sizes...>::Type;
void OptimizeIO() {
std::ios::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
}
void OptimizeIO(const std::string &input_file, const std::string &output_file) {
static std::ifstream input_stream(input_file);
static std::ofstream output_stream(output_file);
cin.rdbuf(input_stream.rdbuf()), cout.rdbuf(output_stream.rdbuf());
cin.tie(nullptr), cout.tie(nullptr);
}
} // namespace base
using base::Array;
int Query(int x) {
cout << "? " << x << endl;
int res;
cin >> res;
return res;
}
void Answer(int x) {
cout << "! " << x << endl;
std::exit(0);
}
int Main() {
base::OptimizeIO();
int n;
cin >> n;
int l = 1, r = n, cur = 1, last = 0;
while (l <= r) {
int res = Query(cur);
if (res == last) Answer(cur);
++cur, last = res;
if (cur > l) l = cur;
int mid = (l + r) >> 1;
res = Query(mid);
if (res == last) Answer(mid);
res < last ? r = mid - 1 : l = mid + 1;
}
__builtin_unreachable();
return 0;
}
} // namespace
int main() { return Main(); }
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3464kb
input:
3 1 2 2 2
output:
? 1 ? 2 ? 2 ? 3 ! 3
result:
ok Correct position at 3
Test #2:
score: -100
Wrong Answer
time: 1ms
memory: 3484kb
input:
10 1 0 1
output:
? 1 ? 6 ? 2 ! 2
result:
wrong answer Wrong answer, more than 1 possible light!