제출 #1141438

#제출 시각아이디문제언어결과실행 시간메모리
1141438hyl_kibouCoins (IOI17_coins)C++17
50 / 100
5 ms584 KiB
#include "coins.h" std::vector<int> coin_flips(std::vector<int> b, int c) { std::vector<int> flips; if(c<3){ //0 1 2 //8 9 10 if(b[8]==b[9] && b[9]==b[10]){ flips.push_back(8+c); } else if(b[8]==b[9]){ if(c==2){ flips.push_back(63); } else{ flips.push_back(8+!c); } } else if(b[8]==b[10]){ if(c==1){ flips.push_back(63); } else{ if(c==0){ flips.push_back(10); } else{ flips.push_back(8); } } } else{ if(c==0){ flips.push_back(63); } else{ if(c==1){ flips.push_back(10); } else{ flips.push_back(9); } } } /* for(int x : flips){ std::cout << x << ' '; } */ return flips; } if(b[8] == b[9] && b[9]==b[10]){ // } else if(b[8]==b[9]){ flips.push_back(10); } else if(b[8]==b[10]){ flips.push_back(9); } else{ flips.push_back(8); } int a = c; int bin[8]; for(int i = 0; i<6; ++i){ bin[i] = a%2; a/=2; } int sum = b[0]; for(int i = 1; i<=6; ++i){ sum+= b[i]!=bin[i-1]; } if(sum<4){ if(b[0]){ flips.push_back(0); } for(int i = 1; i<=6; ++i){ if((b[i]!=bin[i-1])){ flips.push_back(i); } } } else{ if(!b[0]){ flips.push_back(0); } for(int i = 1; i<=6; ++i){ if((b[i]==bin[i-1])){ flips.push_back(i); } } } if(flips.size()==0){ flips.push_back(63); } return flips; } int find_coin(std::vector<int> b) { int sum = 0; int cat = 1; if(b[8]==b[9] && b[9]==b[10]){ if (b[0] == 0) { for(int i = 1; i<=6; ++i){ sum+= b[i]*cat; cat*=2; } } else{ for(int i = 1; i<=6; ++i){ sum+= (!b[i])*cat; cat*=2; } } return sum; } //std::cout <<b[8] <<b[9] <<b[10]; if(b[8]==b[9]){ return 2; } else if(b[8]==b[10]){ return 1; } else{ return 0; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...