CF313A Ilya and Bank Account 题解
Update
- \(\texttt{2021.3.6}\) 经求学的企鹅提醒修改了 Content 部分的数据范围。
Content
有一个人的银行账户里有 \(n\) 元钱,他可以删去倒数第二位获最后一位数字来使得账户里面的钱最大。请求出他的银行账户余额的最大值。
数据范围:\(10\leqslant |n|\leqslant 10^9\)。
Solution
这道题目很简单,枚举倒数第二位和最后一位数字删去之后的账户余额,然后比较哪个更大就好。当然,如果是正数的话不需要删,肯定是越删余额越少的,毕竟谁都不希望把自己原来就有的钱变少。
具体我们用一个字符串实现,读入,如果第一个字符不是负号,那么就直接输出结束。否则,将负号以外的数一一枚举删除,然后比较答案更新。最后取最小值带负号输出,相当于最大值。不过这里要注意的一点就是,\(-0\) 是不合法的,所以,当答案是 \(0\) 时,我们不需要输出前面的负号。
Code
说明一下:
- \(\texttt{isdigit}\) 函数用来判断这个字符是否是数字。
- \(\texttt{(3f3f3f3f)}_{16}\) 表示的是十进制下的 \(1061109567\),可以通过这道题目的数据。注意取最小值初始化时一定要尽可能大!
- 中间那个注释的部分使我中间调试时用的。这对今后的竞赛中很有用,但注意正式提交代码时要把中间调试的部分注释掉!
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
char a[17];
int main() {
scanf("%s", a);
if(isdigit(a[0])) return printf("%s", a), 0;
else {
int len = strlen(a), ans = 0x3f3f3f3f;
for(int i = len - 2; i < len; ++i) {
int s = 0;
for(int j = 1; j < len; ++j)
if(j != i) s = s * 10 + a[j] - '0';
// printf("delete %d: %d\n", i, s);
ans = min(ans, s);
}
if(ans) printf("-");
return printf("%d", ans), 0;
}
}
CF313A Ilya and Bank Account 题解的更多相关文章
- [Codeforces Round #186 (Div. 2)] A. Ilya and Bank Account
A. Ilya and Bank Account time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- 以bank account 数据为例,认识elasticsearch query 和 filter
Elasticsearch 查询语言(Query DSL)认识(一) 一.基本认识 查询子句的行为取决于 query context filter context 也就是执行的是查询(query)还是 ...
- How To Change the Supplier Bank Account Masking in UI (Doc ID 877074.1)
Give Feedback... How To Change the Supplier Bank Account Masking in UI (Doc ID 877074.1) ...
- CF796C Bank Hacking 题解
洛谷链接 题目 Although Inzane successfully found his beloved bone, Zane, his owner, has yet to return. To ...
- Bank Hacking题解
题目: 题意: 有一颗树,你可以断开点(第一个随便断,以后只能是和已经断开的点相临的点),每个点有权值,断开之后,经一条边和两条边可以到达的节点权值加一,问到最后出现过的最大的权值. 分析: 为啥断开 ...
- Codeforces Round #186 (Div. 2)
A. Ilya and Bank Account 模拟. B. Ilya and Queries 前缀和. C. Ilya and Matrix 考虑每个元素的贡献. 边长为\(2^n\)时,贡献为最 ...
- OUC_Summer Training_ DIV2_#9 719
其实自己只会做很简单的题,有时都不想写解题报告,觉得不值得一写,但是又想到今后也许就不会做ACM了,能留下来的东西只有解题报告了,所以要好好写,很渣的题也要写,是今后的纪念. B - B Time L ...
- [2011山东ACM省赛] Mathman Bank(模拟题)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sr19930829/article/details/24187925 Mathman Bank ni ...
- account, accomplish, accumulate
account account从词源和count(数数)有关,和computer也有点关系.calculate则和'stone used in counting'有关.先看两个汉语的例子:1. 回头再 ...
随机推荐
- 解决ip和域名都能够ping通但是启动nginx无法访问网页的问题
解决思路 最近双11逛西部数码的官网看看有没有什么服务器优惠的时候,发现了可以申请一个一块钱用一整年的SSL证书,立马心动下单了,想想俺也可以用https装装X了哈哈 不过在部署完证书,并调整ngin ...
- Codeforces 1519F - Chests and Keys(暴搜+以网络流为状态的 dp)
Codeforces 题目传送门 & 洛谷题目传送门 难度终于出来了--又独立切掉一道 *3200,凯信(所以我已经独立切掉三道 *3200 了?) 首先考虑我们已经知道了每个宝箱上有哪些锁, ...
- DP 做题记录 II.
里面会有一些数据结构优化 DP 的题目(如 XI.),以及普通 DP. *I. P3643 [APIO2016]划艇 题意简述:给出序列 \(a_i,b_i\),求出有多少序列 \(c_i\) 满足 ...
- Excel-vlookup(查找值,区域范围,列序号,0)如何固定住列序列号,这样即使区域范围变动也不受影响
突然,发现VLOOKUP的列序列号并不会随着区域范围的改变而自动调节改变,只是傻瓜的一个数,导致V错值.所有,就想实现随表格自动变化的列序号. 方法一:在列序号那里,用函数得出永远想要的那个列在区域范 ...
- FFmpeg笔记:使用MSVC工具链编译Windows版本静态库、动态库
2019年3月开始,为了将音视频编解码功能集成到Cocos2d-x中,开始接触到FFmpeg: 当时开发环境还在Mac下,编译FFmpeg相比现在用Windows平台要方便的多: 最近,公司内部有个U ...
- javaSE基础知识(走向编程的门口)— 更新完毕
前言:玩儿编程最重要的一点:不要怕麻烦,感觉是在浪费时间: 能动手绝不哔哔:只要脑袋不傻,编程都是"一看就会,一练就废",开始学的时候,就算再基础的东西都建议手敲一遍 要有囫囵吞枣 ...
- 关于learning Spark中文版翻译
在网上找了很久中文版,感觉都是需要支付一定金币才能下载,索性自己翻译算了.因为对Spark有一定了解,而且书籍前面写道,对Spark了解可以直接从第三章阅读,就直接从第三章开始翻译了,应该没有什么 ...
- 零基础学习java------29---------网络日志数据session案例,runtime(导出jar程序)
一. 网络日志数据session案例 部分数据 数据中的字段分别为: 访客ip地址,访客访问时间,访客请求的url及协议,网站响应码,网站返回数据量,访客的referral url,访客的客户端操作系 ...
- 集合类——Map集合、Properties属性文件操作
1.Map集合 Collection集合的特点是每次进行单个对象的保存,若要对一对对象来进行保存就只能用Map集合来保存.即Map集合中一次可以保存两个对象,且这两个对象的关系是key = value ...
- android Paint 详解
/** * Paint类介绍 * * Paint即画笔,在绘图过程中起到了极其重要的作用,画笔主要保存了颜色, * 样式等绘制信息,指定了如何绘制文本和图形,画笔对象有很多设置方法, * 大体 ...