Submission #139649

#TimeUsernameProblemLanguageResultExecution timeMemory
139649almogwaldCombo (IOI18_combo)C++14
100 / 100
457 ms2080 KiB
#include <utility> #include <algorithm> #include <math.h> #include <vector> #include <set> #include <iostream> #include "combo.h" #define fori(i,n) for(int i=0;i<n;i++) #define forn(i,n) for(int i=1;i<n;i++) #define forib(i,n) for(int i=n-1;i>=0;i--) #define fornb(i,n) for(int i=n-1;i>0;i--) #define maxl 10000000000 typedef long long lol; using namespace std; typedef vector<int> veci; typedef pair<lol,lol> point; lol sum=0; vector<vector<int>> cons; char ar[]={'A','B','X','Y'}; string guess_sequence(int n) { string p = ""; for (int i = 0; i < 2 * n; ++i) { p.push_back(ar[0]); } for (int i = 0; i < 2 * n; ++i) { p.push_back(ar[1]); } string s=""; int coins = press(p); p = ""; if(coins==0){ for (int i = 0; i < 4 * n; ++i) { p.push_back(ar[2]); } coins = press(p); p=""; if(coins==0){ s.push_back(ar[3]); }else{ s.push_back(ar[2]); } }else{ for (int i = 0; i < 4 * n; ++i) { p.push_back(ar[0]); } coins = press(p); p=""; if(coins==0){ s.push_back(ar[1]); }else{ s.push_back(ar[0]); } } vector<char> arr; fori(i,4){ if(ar[i]!=s[0]){ arr.push_back(ar[i]); } } for (int i = 0; i < 4 * n; ++i) { p.push_back(s[0]); } while(s.size()<n-1){ fori(i,4){ p[n*i+s.size()-1]=s.back(); } fori(i,3){ p[n*i+s.size()]=arr[0]; p[n*i+s.size()+1]=arr[i]; } p[3*n+s.size()]=arr[1]; coins = press(p); if(coins==s.size()){ s.push_back(arr[2]); } if(coins==s.size()+1){ s.push_back(arr[1]); } if(coins==s.size()+2){ s.push_back(arr[0]); } } if(s.size()<n){ p=""; for (int i = 0; i < 4 * n; ++i) { p.push_back(s[0]); } fori(i,n-1){ p[i]=s[i]; } p[n-1]=arr[0]; coins = press(p); if(coins==n){ s.push_back(arr[0]); }else{ p[n-1]=arr[1]; coins = press(p); if(coins==n){ s.push_back(arr[1]); }else{ s.push_back(arr[2]); } } } return s; }

Compilation message (stderr)

combo.cpp: In function 'std::string guess_sequence(int)':
combo.cpp:66:16: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   66 |  while(s.size()<n-1){
      |        ~~~~~~~~^~~~
combo.cpp:76:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   76 |   if(coins==s.size()){
      |      ~~~~~^~~~~~~~~~
combo.cpp:79:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   79 |   if(coins==s.size()+1){
      |      ~~~~~^~~~~~~~~~~~
combo.cpp:82:11: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |   if(coins==s.size()+2){
      |      ~~~~~^~~~~~~~~~~~
combo.cpp:86:13: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   86 |  if(s.size()<n){
      |     ~~~~~~~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...