设为首页 加入收藏

TOP

Codeforces Round #306 (Div. 2)(二)
2015-11-21 00:59:51 来源: 作者: 【 】 浏览:7
Tags:Codeforces Round #306 Div.
f 99999999 int a[maxn],l,r,x,n; int num=0; void dfs(int cur,int sum,int ma,int mi,int cnt){ if(sum>r) return; if(ma a[cur]) mi=a[cur]; if(sum>=l&&sum<=r&&(ma-mi>=x)&&cnt>=2){ num++; //return 注意了,这里并不用加return,因为我们这里并不需要返回,因为我们要做的就是让它不撞南墙不回头的去搜索!!! } for(int i=cur+1;i

?

?

C. Divisibility by Eight time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output

You are given a non-negative integer n, its decimal representation consists of at most 100 digits and doesn't contain leading zeroes.

Your task is to determine if it is possible in this case to remove some of the digits (possibly not remove any digit at all) so that the result contains at least one digit, forms a non-negative integer, doesn't have leading zeroes and is divisible by 8. After the removing, it is forbidden to rearrange the digits.

If a solution exists, you should print it.

Input

The single line of the input contains a non-negative integer n. The representation of number n doesn't contain any leading zeroes and its length doesn't exceed 100 digits.

Output

Print "NO" (without quotes), if there is no such way to remove some digits from number n.

Otherwise, print "YES" in the first line and the resulting number after removing digits from number n in the second line. The printed number must be divisible by 8.

If there are multiple possible answers, you may print any of them.

Sample test(s) input
3454
output
YES
344
input
10
output
YES
0
input
111111
output
NO

这道题我是找规律的,首先我发现后两位数是有重复的,比如说从0~100与200~300的后两位是重复的,从100~200与300~400的后两位是重复的,所以我们可以对后两位进行判断。

代码有点挫,先贴上来,明天再整理下。

?

#include
                 
                  
#include
                  
                    #include
                   
                     #include
                    
                      using namespace std; #define maxn 111 char a[maxn]; int mp[33]; int main(){ scanf("%s",a); int len=strlen(a); for(int i=0;i
                     
                      =2&&flag) {puts("YES"); printf("112\n");return 0;} for(int i=0;i
                      
                       =2&&flag) {puts("YES"); printf("%d44\n",tx);return 0;} flag=false; for(int i=0;i
                       
                         感觉就像是一个暴暴力~~~
                        

?

还有每次必说的——加油!

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇POJ 1325 Machine Schedule (二分.. 下一篇Codeforces 550D. Regular Bridge..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: