列表

详情


NC205447. 四章

描述

本题输入量较大,请尽量不要使用cin等较慢的输入方式

有一天先辈邀请后辈到家里吃面包喝红茶,先辈家里有 n 个大小为 1 的面包和 m 个大小为 2 的面包,先辈要求后辈把所有面包吃完。

后辈每吃一块面包,就会积累等同面包大小的饱腹值,当后辈的饱腹值 > k 时,就会因为吃太撑没力气昏倒。后辈可以选择喝一次红茶消除当前所有的饱腹值,但是红茶被先辈下了药,所以后辈想在不昏倒的情况下,喝红茶的次数尽可能少。

输入描述

本题有多组数据,输入文件第一行有一个正整数 T 表示数据组数。
对于每一组数据,有三个数 n, m, k ,表示先辈家大小为 1 的面包数量和大小为 2 的面包数量,以及饱腹值的上限 k 。

输出描述

对于每一组数据输出一个数并换行,表示后辈最少喝的红茶数量。

示例1

输入:

1
14 5 14

输出:

1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++14(g++5.4) 解法, 执行用时: 918ms, 内存消耗: 57840K, 提交时间: 2020-06-20 00:41:56

#include <iostream>
#include<cstdio>
int main()
{
    long long t,n,m,k;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%lld%lld%lld",&n,&m,&k);
        printf("%lld\n",(n+m*2)/k);


    }

    return 0;
}

C++11(clang++ 3.9) 解法, 执行用时: 1205ms, 内存消耗: 10312K, 提交时间: 2020-06-20 08:33:20

#include<stdio.h>
int main(){
    long long T,n,m,k;
    scanf("%lld",&T);
    while(T--){
        scanf("%lld%lld%lld",&n,&m,&k);
       printf("%lld\n",(2*m+n)/k);
    }
    return 0;
}

C(clang 3.9) 解法, 执行用时: 1072ms, 内存消耗: 57808K, 提交时间: 2020-06-23 21:06:07

#include <stdio.h>
int main()
{
    long long i,n,m,k;
    scanf("%lld",&i);
    while(i--)
    {
        scanf("%lld%lld%lld",&n,&m,&k);
        printf("%lld\n",(2*m+n)/k);
    }
}

上一题