# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
533039 | 2022-03-04T14:36:31 Z | chaoyue | Aliens (IOI07_aliens) | C++14 | Compilation error |
0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; #define ll long long int n, x0, y0, tops, bottoms, lefts, rights, cx, cy, length; int c, var, m, mm, mmm; //c is constant, var is shiftable coordinate bool vertical; //whether analysing vertical bool examine(int a){ string s; if(vertical){ cout<<"examine "<<x0<<" "<<a<<flush; } else{ cout<<"examine "<<a<<" "<<y0<<flush; } cin>>s; if(s == "true") return 1; return 0; } bool query(int x, int y){ string s; cout<<"examine "<<x<<" "<<y<<flush; cin>>s; if(s == "true") return 1; return 0; } void bs(){ //inital binary search while(true){ m = (c+var)/2; if(examine(m)) break; var = m; } } int getcase(){ //1 -> is first square, 2 -> is second square, 3 -> is third square mm = (c+m)/2; mmm = (c+mm)/2; if(!examine(mm)){ return 2; } else{ if(examine(mmm)) return 1; return 3; } } int bs2(int l, int r){ if(l > r) swap(l, r); while(r-l > 1){ int mid = (l+r)/2; if(examine(mid)){ if(var > c){ l = mid; } else{ r = mid; } } else{ if(var > c){ r = mid; } else{ l = mid; } } } if(var > c) return l; return r; } int side(int C, int VAR, bool VERTICAL){ int square; vertical = VERTICAL; c = C; var = VAR; bs(); square = getcase(); if(square == 2){ return bs2(c, mm); } else if(square == 1){ return bs2(m, var); } else{ return bs2(c, mmm); } } int diag(int hor, int ver){ int newx, newy; for(int i=1; i<=4; i++){ newx = cx + hor * i * length; newy = cy + ver * i * length; if(newx <= 0 || newx > n || newy <= 0 || newy > n || !query(newx, newy)) return i-1; } return 4; } void solve(){ rights = side(x0, n+1, 0); lefts = side(x0, -1, 0); tops = side(y0, n+1, 1); bottoms = side(y0, -1, 1); length = rights - lefts + 1; cx = (lefts + rights)/2; cy = (bottoms + tops)/2; int tl, tr, bl, br; tl = diag(-1, 1); tr = diag(1, 1); bl = diag(-1, -1); br = diag(1, -1); cx += (br - tl + tr - bl) / 2 * length; cy += (tl - br + tr - bl) / 2 * length; cout<<"solution "<<cx<<" "<<cy; } int main(){ cin>>n>>x0>>y0; solve(); return 0; }
Compilation message
aliens.cpp:6:12: error: 'int y0' redeclared as different kind of entity 6 | int n, x0, y0, tops, bottoms, lefts, rights, cx, cy, length; | ^~ 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:220:1: note: previous declaration 'double y0(double)' 220 | __MATHCALL (y0,, (_Mdouble_)); | ^~~~~~~~~~ aliens.cpp: In function 'bool examine(int)': aliens.cpp:16:29: warning: the address of 'double y0(double)' will never be NULL [-Waddress] 16 | cout<<"examine "<<a<<" "<<y0<<flush; | ^~ aliens.cpp: In function 'void solve()': aliens.cpp:107:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'int' [-fpermissive] 107 | tops = side(y0, n+1, 1); | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:76:14: note: initializing argument 1 of 'int side(int, int, bool)' 76 | int side(int C, int VAR, bool VERTICAL){ | ~~~~^ aliens.cpp:108:17: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'int' [-fpermissive] 108 | bottoms = side(y0, -1, 1); | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:76:14: note: initializing argument 1 of 'int side(int, int, bool)' 76 | int side(int C, int VAR, bool VERTICAL){ | ~~~~^ aliens.cpp: In function 'int main()': aliens.cpp:123:12: error: no match for 'operator>>' (operand types are 'std::basic_istream<char>::__istream_type' {aka 'std::basic_istream<char>'} and 'double(double) throw ()' {aka 'double(double)'}) 123 | cin>>n>>x0>>y0; | ~~~~~~~~~~^~~~ | | | | | double(double) throw () {aka double(double)} | 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'std::basic_istream<char>::__istream_type& (*)(std::basic_istream<char>::__istream_type&)' {aka 'std::basic_istream<char>& (*)(std::basic_istream<char>&)'} [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'std::basic_istream<char>::__ios_type& (*)(std::basic_istream<char>::__ios_type&)' {aka 'std::basic_ios<char>& (*)(std::basic_ios<char>&)'} [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'std::ios_base& (*)(std::ios_base&)' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} 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:123:14: warning: the address of 'double y0(double)' will never be NULL [-Waddress] 123 | cin>>n>>x0>>y0; | ^~ aliens.cpp:123:14: 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'short int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(short int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'short unsigned int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(short unsigned int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'unsigned int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(unsigned int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'long int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(long int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'long unsigned int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(long unsigned int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'long long int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(long long int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'long long unsigned int' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(long long unsigned int)y0' 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:123:14: error: invalid conversion from 'double (*)(double) throw ()' {aka 'double (*)(double)'} to 'void*' [-fpermissive] 123 | cin>>n>>x0>>y0; | ^~ | | | double (*)(double) throw () {aka double (*)(double)} aliens.cpp:123:14: error: cannot bind rvalue '(void*)y0' 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) throw ()' {aka 'double(double)'} 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) throw ()' {aka 'double(double)'} 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