Codeforces 1366A - Shovels and

2020-06-24  本文已影响0人  费城的二鹏

日常一道算法题。

翻译

铁锹和剑

Polycarp 玩一个很知名的游戏。游戏中,他有两种工具,木头和钻石。造一柄剑需要两颗钻石一块木头,造一个铁锹需要一块钻石两块木头,每种东西都值一块钱。

问他最多能赚多少钱。

输入格式

第一行输入整数 t,表示测试用例组数。

每个测试用例输入两个整数 a 和 b,分别表示两种材料的数量。

输出格式

每个测试用例输出一个整数,能赚的钱数。

分析

先判断是否最大的数量大于另一个数量的两倍,如果大于两倍,则少的有多少则赚多少钱。

否则,多了多少则先消耗多少,这是第一部分。剩余部分除以三,就能赚这个数量乘以二,然后如果还有剩余 2 2,则再加 1。

代码(Python3)

image.png
# https://codeforces.com/problemset/problem/1366/A
 
import sys
import os
import heapq
import math
 
try:
    path = "./file/input.txt"
    if os.path.exists(path):
        sys.stdin = open(path, 'r')
    # sys.stdout = open(r"./file/output.txt", 'w')
except:
    pass
 
t = int(input())
 
def printd(value):
    # print(value)
    pass
 
def case():
    arr = list(map(int, input().split(" ")))
    a, b = arr[0], arr[1]
    if a < b:
        a, b = b, a
    if a - b > b:
        print(b)
    else:
        c = a - b
        d = b - c
        count = (d // 3) * 2
        count += c
        if d % 3 == 2:
            count += 1
        print(count)
    
for _ in range(t):
    case()

更多代码尽在 https://github.com/Tconan99/Codeforces

by 费城的二鹏 2020.06.22 长春

上一篇下一篇

猜你喜欢

热点阅读