제출 #250415

#제출 시각아이디문제언어결과실행 시간메모리
250415ryansee콤보 (IOI18_combo)C++14
100 / 100
38 ms592 KiB
#include "combo.h" #include "bits/stdc++.h" using namespace std; #define FAST ios_base::sync_with_stdio(false); cin.tie(0); #define pb push_back #define eb emplace_back #define ins insert #define f first #define s second #define cbr cerr<<"hi\n" #define mmst(x, v) memset((x), v, sizeof ((x))) #define siz(x) ll(x.size()) #define all(x) (x).begin(), (x).end() #define lbd(x,y) (lower_bound(all(x),y)-x.begin()) #define ubd(x,y) (upper_bound(all(x),y)-x.begin()) mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); //can be used by calling rng() or shuffle(A, A+n, rng) inline long long rand(long long x, long long y) { return rng() % (y+1-x) + x; } //inclusivesss string inline to_string(char c) {string s(1,c);return s;} template<typename T> inline T gcd(T a,T b){ return a==0?llabs(b):gcd(b%a,a); } using ll=long long; using ld=long double; #define FOR(i,s,e) for(ll i=s;i<=ll(e);++i) #define DEC(i,s,e) for(ll i=s;i>=ll(e);--i) using pi=pair<ll,ll>; using spi=pair<ll,pi>; using dpi=pair<pi,pi>; #define LLINF ((long long)1e18) #define INF int(1e9+1e6) #define MAXN (300006) std::string guess_sequence(int n) { string ans = ""; ll val = press("AB"); if(val>=1){ val=press("A"); if(val==1) ans = 'A'; else ans = 'B'; }else{ val = press("X"); if(val==1) ans = 'X'; else ans = 'Y'; } vector<string> pos; for(auto i:{"A","B","X","Y"}) if(ans != i) pos.eb(i); FOR(i,2,n-1){ ll val=press(ans+pos[0]+pos[0]+ans+pos[0]+pos[1]+ans+pos[0]+pos[2]+ans+pos[1]+to_string(ans[0])); if(val == ans.size() + 2) ans += pos[0]; else if(val == ans.size() + 1) ans += pos[1]; else ans += pos[2]; } if(n>1){ ll val=press(ans+pos[0]+ans+pos[1]); if(val==ans.size()+1){ ll val=press(ans+pos[0]); if(val==ans.size()+1)ans+=pos[0]; else ans+=pos[1]; }else{ ans+=pos[2]; } } return ans; }

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

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:47:10: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |   if(val == ans.size() + 2) ans += pos[0];
      |      ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:48:15: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   48 |   else if(val == ans.size() + 1) ans += pos[1];
      |           ~~~~^~~~~~~~~~~~~~~~~
combo.cpp:53:9: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   53 |   if(val==ans.size()+1){
      |      ~~~^~~~~~~~~~~~~~
combo.cpp:55:10: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   55 |    if(val==ans.size()+1)ans+=pos[0];
      |       ~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...