红衫结晶水 2023-09-25 21:45 采纳率: 42.9%
浏览 2

一道简单的但是不会做的题

小蒲非常喜欢刷b站,天天都去刷,作为2017年才加入b站的,了好多年,积攒了上千的硬币,以至于他现在才5级,于是他想要快速积攒经验,众所周知,每天b站会给登录用户1枚硬币,1枚硬币的经验值为10经验值,每天最多可以投5枚硬币获得经验值,也就是每一天可以通过投币最多获得50经验,他想要以最快的方式通过投币获得最多的经验,直到他的硬币数为0时停止投币,请问他这期间能获得的经验值为多少,经过了多少天?

输入格式:
第一行输入一个整数T,代表数据的组数

接下来的T行,每一行有一个整数n,代表他今天拥有的硬币数(已经获得当天的奖励硬币)

输出格式:
输出T行,每一行两个数a,b,a代表他所获得的经验值,b代表经过了多少天。

输入样例:
1
6
输出样例:
70 2
样例解释
第一天:他拥有6枚硬币,他投5枚,获得了50点经验值。

第二天:奖励一枚硬币,他拥有2枚硬币,他投2枚,获得了20点经验值,剩余0枚硬币。

如果按流程写会超时,这样写出来案例对,但现实答案错误,实在不知道哪错了

#include <iostream>
#include <cmath>
using namespace std;
int main() {
    int n,b=0,day=1,i,j,flag=0;
    long long exp=0,d=0;
    cin>>n;
    for(i=0; i<n; i++) {
        cin>>b;
        day=1;
        flag=0;
        exp=0;
        if(b<=5){
            day=1;
            exp=b*10;
        }else{
            exp=((b-2)/4+b)*10;
            day=(b-2)/4+1 ;
        }
        cout<<exp<<" "<<day<<endl;
    }
    return 0;
} 

数据范围及约定
题目测试数据集保证T<=10000,1<=n<=1e12

  • 写回答

2条回答 默认 最新

  • 追逐远方的梦 2023-09-25 22:10
    关注

    贪心

    评论

报告相同问题?

问题事件

  • 创建了问题 9月25日

悬赏问题

  • ¥15 非科班怎么跑代码?如何导数据和调参
  • ¥15 福州市的全人群死因监测点死亡原因报表
  • ¥15 Altair EDEM中生成一个颗粒,并且各个方向没有初始速度
  • ¥15 系统2008r2 装机配置推荐一下
  • ¥500 服务器搭建cisco AnyConnect vpn
  • ¥15 悬赏Python-playwright部署在centos7上
  • ¥15 psoc creator软件有没有人能远程安装啊
  • ¥15 快速扫描算法求解Eikonal方程咨询
  • ¥15 校内二手商品转让网站
  • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?