제출 #349483

#제출 시각아이디문제언어결과실행 시간메모리
349483ezdp콤보 (IOI18_combo)C++14
100 / 100
54 ms556 KiB
#pragma GCC optimize ("O3") #pragma GCC target ("sse4") #include<bits/stdc++.h> #include<combo.h> #include<ext/pb_ds/assoc_container.hpp> #define endl '\n' #define pb push_back #define fr first #define sc second #define ll long long int #define ld long double #define bit(idx) idx&(-idx) #define bin(x) bitset<32>(x) #define all(A) A.begin(), A.end() #define de(x) cout << #x << " = " << x << endl; #define row vector<ll> #define row_matrix vector<ll> #define matrix vector<row_matrix> #define ordered_set_T ll using namespace std; using namespace __gnu_pbds; typedef tree<ordered_set_T, null_type, less<ordered_set_T>, rb_tree_tag, tree_order_statistics_node_update> ordered_set; /// find_by_order(x) -> x-th element in the set /// order_of_key(x) -> how many elements are smaller than x /// insert(x) -> inserts x into the set string guess_sequence(int N){ string ans, qry; ll tmp = press("AB"); if(tmp){ tmp = press("A"); if(tmp) ans += 'A'; else ans += 'B'; } else{ tmp = press("X"); if(tmp) ans += 'X'; else ans += 'Y'; } if(N == 1) return ans; vector<char> v; if(ans != "A") v.pb('A'); if(ans != "B") v.pb('B'); if(ans != "X") v.pb('X'); if(ans != "Y") v.pb('Y'); for(int i = 1; i + 1 < N; i ++){ qry = ans; qry += v[0]; qry += ans; qry += v[1]; qry += v[0]; qry += ans; qry += v[1]; qry += v[1]; qry += ans; qry += v[1]; qry += v[2]; tmp = press(qry); if(tmp == ans.size() + 0) ans += v[2]; if(tmp == ans.size() + 1) ans += v[0]; if(tmp == ans.size() + 2) ans += v[1]; } qry = ans; qry += v[0]; tmp = press(qry); if(tmp == N) return qry; qry = ans; qry += v[1]; tmp = press(qry); if(tmp == N) return qry; qry = ans; qry += v[2]; return qry; } /** */

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:59:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   59 |   if(tmp == ans.size() + 0) ans += v[2];
      |      ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:60:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   60 |   if(tmp == ans.size() + 1) ans += v[0];
      |      ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:61:10: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   61 |   if(tmp == ans.size() + 2) ans += v[1];
      |      ~~~~^~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...