# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
964617 | steveonalex | Aliens (IOI07_aliens) | C++17 | 컴파일 에러 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
#define ALL(v) (v).begin(), (v).end()
#define MASK(i) (1LL << (i))
#define GETBIT(mask, i) (((mask) >> (i)) & 1)
// mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
mt19937_64 rng(1);
ll rngesus(ll l, ll r){return ((ull) rng()) % (r - l + 1) + l;}
ll max(ll a, ll b){return (a > b) ? a : b;}
ll min(ll a, ll b){return (a < b) ? a : b;}
ll LASTBIT(ll mask){return mask & (-mask);}
ll pop_cnt(ll mask){return __builtin_popcountll(mask);}
ll ctz(ll mask){return __builtin_ctzll(mask);}
ll clz(ll mask){return __builtin_clzll(mask);}
ll logOf(ll mask){return 63 - clz(mask);}
template <class T1, class T2>
bool minimize(T1 &a, T2 b){
if (a > b){a = b; return true;}
return false;
}
template <class T1, class T2>
bool maximize(T1 &a, T2 b){
if (a < b){a = b; return true;}
return false;
}
template <class T>
void printArr(T& a, string separator = " ", string finish = "\n", ostream& out = cout){
for(auto i: a) out << i << separator;
out << finish;
}
template <class T>
void remove_dup(vector<T> &a){
sort(ALL(a));
a.resize(unique(ALL(a)) - a.begin());
}
const int LOG_N = 31;
ll n, x1, y1;
int examine(ll x, ll y){
if (x < 1 || x > n || y < 1 || y > n) return 0;
cout << "examine " << x << " " << y << endl;
string verdict; cin >> verdict;
return verdict == "true";
}
void solution(ll x, ll y){
cout << "solution " << x << " " << y << endl;
exit(0);
}
int binary_lift_descent(function<int(int)> f){
if (f(1) == 0) return 0;
int j = 0;
for(; j < LOG_N; ++j) {
if (f(MASK(j)) == false){
j--;
break;
}
}
int ans = MASK(j);
while(j--){
if (f(ans + MASK(j))) ans += MASK(j);
}
return ans;
}
int main(void){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n >> x1 >> y1;
int xL, xR, yL, yR, block_sz;
xR = binary_lift_descent([](int x){return examine(x1 + x, y1);});
xL = binary_lift_descent([](int x){return examine(x1 - x, y1);});
block_sz = xR - xL + 1;
yL = binary_lift_descent([](int x){return examine(x1, y1 - x);});
yR = yL + block_sz - 1;
int x1 = (xL + xR) / 2, y1 = (yL + yR) / 2;
for(int i = -4; i<=4; ++i) for(int j = -4; j<=4; ++j) if ((i + j) % 2 == 0){
if (examine(x1 + i * block_sz, y1 + j * block_sz)) {
minimize(xL, x1 + i * block_sz);
minimize(yL, y1 + j * block_sz);
maximize(xR, x1 + i * block_sz);
maximize(yR, y1 + j * block_sz);
}
}
x1 = (xL + xR) / 2, y1 = (yL + yR) / 2;
solution(x1, y1);
return 0;
}
컴파일 시 표준 에러 (stderr) 메시지
aliens.cpp:47:11: error: 'll y1' redeclared as different kind of entity 47 | ll n, x1, y1; | ^~ In file included from /usr/include/features.h:461, from /usr/include/x86_64-linux-gnu/c++/10/bits/os_defines.h:39, from /usr/include/x86_64-linux-gnu/c++/10/bits/c++config.h:518, from /usr/include/c++/10/cassert:43, from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:33, from aliens.cpp:1: /usr/include/x86_64-linux-gnu/bits/mathcalls.h:221:1: note: previous declaration 'double y1(double)' 221 | __MATHCALL (y1,, (_Mdouble_)); | ^~~~~~~~~~ aliens.cpp: In function 'int main()': aliens.cpp:80:20: error: no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type' {aka 'std::basic_istream<char>'} and 'double(double) noexcept') 80 | cin >> n >> x1 >> y1; | ~~~~~~~~~~~~~~ ^~ ~~ | | | | | double(double) noexcept | std::basic_istream<char>::__istream_type {aka std::basic_istream<char>} In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:120:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__istream_type& (*)(std::basic_istream<_CharT, _Traits>::__istream_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 120 | operator>>(__istream_type& (*__pf)(__istream_type&)) | ^~~~~~~~ /usr/include/c++/10/istream:120:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'} [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:124:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__ios_type& (*)(std::basic_istream<_CharT, _Traits>::__ios_type&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>; std::basic_istream<_CharT, _Traits>::__ios_type = std::basic_ios<char>]' (near match) 124 | operator>>(__ios_type& (*__pf)(__ios_type&)) | ^~~~~~~~ /usr/include/c++/10/istream:124:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)' {aka 'std::basic_ios<char>& (*)(std::basic_ios<char>&)'} [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:131:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(std::ios_base& (*)(std::ios_base&)) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 131 | operator>>(ios_base& (*__pf)(ios_base&)) | ^~~~~~~~ /usr/include/c++/10/istream:131:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'std::ios_base& (*)(std::ios_base&)' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:168:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(bool&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 168 | operator>>(bool& __n) | ^~~~~~~~ /usr/include/c++/10/istream:168:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: warning: the address of 'double y1(double)' will never be NULL [-Waddress] 80 | cin >> n >> x1 >> y1; | ^~ aliens.cpp:80:23: error: cannot bind non-const lvalue reference of type 'bool&' to an rvalue of type 'bool' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:172:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(short int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match) 172 | operator>>(short& __n); | ^~~~~~~~ /usr/include/c++/10/istream:172:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'short int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(short int)y1' to 'short int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:175:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(short unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 175 | operator>>(unsigned short& __n) | ^~~~~~~~ /usr/include/c++/10/istream:175:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'short unsigned int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(short unsigned int)y1' to 'short unsigned int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:179:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(int&) [with _CharT = char; _Traits = std::char_traits<char>]' (near match) 179 | operator>>(int& __n); | ^~~~~~~~ /usr/include/c++/10/istream:179:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(int)y1' to 'int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:182:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 182 | operator>>(unsigned int& __n) | ^~~~~~~~ /usr/include/c++/10/istream:182:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'unsigned int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(unsigned int)y1' to 'unsigned int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:186:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 186 | operator>>(long& __n) | ^~~~~~~~ /usr/include/c++/10/istream:186:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'long int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(long int)y1' to 'long int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:190:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 190 | operator>>(unsigned long& __n) | ^~~~~~~~ /usr/include/c++/10/istream:190:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'long unsigned int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(long unsigned int)y1' to 'long unsigned int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:195:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 195 | operator>>(long long& __n) | ^~~~~~~~ /usr/include/c++/10/istream:195:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'long long int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(long long int)y1' to 'long long int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:199:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long long unsigned int&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 199 | operator>>(unsigned long long& __n) | ^~~~~~~~ /usr/include/c++/10/istream:199:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'long long unsigned int' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(long long unsigned int)y1' to 'long long unsigned int&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:235:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(void*&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' (near match) 235 | operator>>(void*& __p) | ^~~~~~~~ /usr/include/c++/10/istream:235:7: note: conversion of argument 1 would be ill-formed: aliens.cpp:80:23: error: invalid conversion from 'double (*)(double) noexcept' to 'void*' [-fpermissive] 80 | cin >> n >> x1 >> y1; | ^~ | | | double (*)(double) noexcept aliens.cpp:80:23: error: cannot bind rvalue '(void*)y1' to 'void*&' In file included 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 aliens.cpp:1: /usr/include/c++/10/istream:214:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(float&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' 214 | operator>>(float& __f) | ^~~~~~~~ /usr/include/c++/10/istream:214:25: note: no known conversion for argument 1 from 'double(double) noexcept' to 'float&' 214 | operator>>(float& __f) | ~~~~~~~^~~ /usr/include/c++/10/istream:218:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' 218 | operator>>(double& __f) | ^~~~~~~~ /usr/include/c++/10/istream:218:26: note: no known conversion for argument 1 from 'double(double) noexcept' to 'double&' 218 | operator>>(double& __f) | ~~~~~~~~^~~ /usr/include/c++/10/istream:222:7: note: candidate: 'std::basic_istream<_CharT, _Traits>::__istream_type& std::basic_istream<_CharT, _Traits>::operator>>(long double&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__istream_type = std::basic_istream<char>]' 222 | operator>>(long double& __f) | ^~~~~~~~ /usr/include/c++/10/istream:222:31: note: no known conversion for argument 1 from 'double(double) noexcept' to 'long double&' 222 | operator>>(long double& __f) | ~~~~~~~~~~~~~^~~ /usr/include/c++/10/istream:259:7: note: candidate: 'std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>::__streambuf_type*) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_istream<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]' 259 | operator>>(__streambuf_type* __sb); | ^~~~~~~~ /usr/include/c++/10/istream:259:36: note: no known conversion for argument 1 from 'double(double) noexcept' to 'std::basic_istream<char>::__streambuf_type*' {aka 'std::basic_streambuf<char>*'} 259 | operator>>(__streambuf_type* __sb); | ~~~~~~~~~~~~~~~~~~^~~~ In file included from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:45, from aliens.cpp:1: /usr/include/c++/10/cstddef:130:5: note: candidate: 'template<class _IntegerType> constexpr std::__byte_op_t<_IntegerType> std::operator>>(std::byte, _IntegerType)' 130 | operator>>(byte __b, _IntegerType __shift) noexcept | ^~~~~~~~ /usr/include/c++/10/cstddef:130:5: note: template argument deduction/substitution failed: aliens.cpp:80:14: note: cannot convert '(& std::cin.std::basic_istream<char>::operator>>(n))->std::basi