#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |