제출 #1235480

#제출 시각아이디문제언어결과실행 시간메모리
1235480simplemind_31Coins (IOI17_coins)C++20
10 / 100
5 ms584 KiB
#include "coins.h"
#include <bits/stdc++.h>
using namespace std;
bool subtask1=true;
vector<int> coin_flips(vector<int> b, int c){
    if(c>=2){
        subtask1=false;
        int l=0,r=63;
        vector<int> flip;
        while(l<r){
            int mid=(l+r)>>1;
            if(c>mid){
                //derecha 11 o 01;
                if(!b[mid+1]){
                    flip.push_back(mid+1);
                }
                l=mid+1;
            }else{
                //izquierda 00 o 10
                if(b[mid+1]){
                    flip.push_back(mid+1);
                }
                r=mid;
            }
        }
        if(flip.empty()){
            flip={0,0};
        }
        return flip;
    }else{
        vector<int> flip;
        if(c==1){
            if(b[1]==1){
                flip.push_back(0);
            }else{
                flip.push_back(1);
            }
        }else{
            if(b[1]==1){
                flip.push_back(1);
            }else{
                flip.push_back(0);
            }
        }
        return flip;
    }
}
int find_coin(vector<int> b){
    int l=0,r;
    if(subtask1){
        r=1;
    }else{
        r=63;
    }
    while(l<r){
        int mid=(l+r)>>1;
        if(b[mid+1]){
            l=mid+1;
        }else{
            r=mid;
        }
    }
    return l;
}
#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...