Codeforces Round #306 (Div. 2) C
来源:互联网 发布:高分辨率软件界面模糊 编辑:程序博客网 时间:2024/05/22 06:34
题意
给一个不超过100的整数字符串,从其中拿去任意个数(也可以不拿)。问有没有可能剩下的可以被8整除。如果可以,输出YES和任意一个剩下的数的情况。如果不可以,输出NO。
思路
想法题。首先观察到,1000可以整除8。也就是说我们可以不关心4位数的情况。只要有可能存在题目说的数,那么它一定可以表示成3位数或更低的位数。那么就好办了,直接枚举即可。
先看是否有0.
再看是否有8.
接着枚举两位数的情况,最后枚举三位数的情况。
代码
#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>using namespace std;const int maxn = 110;char s[maxn];int ans;int len;bool chk2(int x)//检查两位数{ char c1 = '0'+x/10; char c2 = '0'+x%10; for(int i = 0 ; i < len-1 ; i ++) { for(int j = i+1 ; j < len ; j ++) { if(s[i] == c1 && s[j] == c2) { ans = x; return true; } } } return false;}bool chk3(int x)//检查三位数{ char c1 = '0'+x/100; char c2 = '0'+(x%100)/10; char c3 = '0'+x%10; for(int i = 0 ; i < len-2 ; i ++) { for(int j = i+1 ; j < len-1 ; j ++) { for(int t = j+1 ; t < len ; t ++) { if(s[i] == c1 && s[j] == c2 && s[t] == c3) { ans = x; return true; } } } } return false;}int main(){ scanf("%s",s); len = strlen(s); for(int i = 0 ; i < len ; i ++) { if(s[i] == '0') { printf("YES\n0\n"); return 0; } } for(int i = 0 ; i < len ; i ++) { if(s[i] == '8') { printf("YES\n8\n"); return 0; } } for(int i = 2 ; i <= 12 ; i ++) { if(chk2(8*i)) { printf("YES\n%d\n",ans); return 0; } } for(int i = 13 ; i <= 124 ; i ++) { if(chk3(8*i)) { printf("YES\n%d\n",ans); return 0; } } printf("NO\n"); return 0;}
2 0
- Codeforces Round #306 (Div. 2) C
- Codeforces Round #306 (Div. 2) C 模拟
- 【codeforces】Codeforces Round #370 (Div. 2) C
- Codeforces Round #306 (Div. 2)
- Codeforces Round #306 (Div. 2)
- Codeforces Round #306 (Div. 2)
- Codeforces Round #306 (Div. 2)
- Codeforces Round #306 (Div. 2)
- Codeforces Round #306 (Div. 2)
- Codeforces Round #306 (Div. 2) A B C
- Codeforces Round #306 (Div. 2) A B C
- Codeforces Round #306 (Div. 2)C. Divisibility by Eight--模拟
- Codeforces Round #306 (Div. 2) C.Divisibility by Eight
- Codeforces Round #105 (Div. 2) C
- Codeforces Round 134 div 2 C题
- Codeforces Round #137 (Div. 2), problem: (C)
- Codeforces Round #153 (Div. 2) C题
- Codeforces Round #158 (Div. 2) C题
- 二叉树顺序结构实现
- 二叉树链式结构
- 线索二叉树
- Codeforces Round #306 (Div. 2) A
- Codeforces Round #306 (Div. 2) B
- Codeforces Round #306 (Div. 2) C
- Jquery on() load event on a single element
- Android开发记录20-获取缓存大小和清除缓存功能
- 1009过程未解
- FFFF001
- ubuntu 取消打印队列命令
- Shell 基础
- Foundation框架发送消息
- sgu252:Railway Communication(费用流)