Submission #1512314


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

#define fst(t) std::get<0>(t)
#define snd(t) std::get<1>(t)
#define thd(t) std::get<2>(t)
#define unless(p) if(!(p))
#define until(p) while(!(p))

using ll = long long;
using P = std::tuple<int,int>;

const int dx[8] = {-1, 1, 0, 0, -1, -1, 1, 1}, dy[8] = {0, 0, -1, 1, -1, 1, -1, 1};

ll N, M;

int main(){
    std::cin.tie(nullptr);
    std::ios::sync_with_stdio(false);

    std::cin >> N >> M;

    // if minimizing, lb satisfies lb > ub
    // if maximizing, lb satisfies lb < ub
    int64_t lb = 0, ub = 10000000000000;

    while(std::abs(ub - lb) > 1){
        int64_t mid = (lb + ub) / 2;

        bool can = true;
        if(mid * 2 > M){can = false;}
        ll rest = M - mid * 2;
        if(mid > N + rest / 2){can = false;}
        
        if(can){
            lb = mid;
        }else{
            ub = mid;
        }
    }

    std::cout << lb << std::endl;
}

Submission Info

Submission Time
Task C - Scc Puzzle
User iwashisnake
Language C++14 (GCC 5.4.1)
Score 300
Code Size 968 Byte
Status AC
Exec Time 1 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 2
AC × 9
Set Name Test Cases
Sample 00_example_01.txt, 00_example_02.txt
All 00_example_01.txt, 00_example_02.txt, 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt
Case Name Status Exec Time Memory
00_example_01.txt AC 1 ms 256 KB
00_example_02.txt AC 1 ms 256 KB
01.txt AC 1 ms 256 KB
02.txt AC 1 ms 256 KB
03.txt AC 1 ms 256 KB
04.txt AC 1 ms 256 KB
05.txt AC 1 ms 256 KB
06.txt AC 1 ms 256 KB
07.txt AC 1 ms 256 KB