链接:
https://codeforces.com/problemset/problem/550/C
题意:
长度100以内的字符串,找能被8整除的子序列
解:
1000就能被8整除,所以只要找3位数字
暴力n^3
实际代码:
#include<iostream>
#include<bits/stdc++.h>
#define csh(a) memset(a,0,sizeof(a))
using namespace std;
typedef long long int ll;
const int Size=2E5+10;
int main()
{
string s;
cin>>s;
int lg=s.length();
for(int x=0;x<lg;x++)
{
//cout<<"X"<<x<<endl;
int tempa=(s[x]-'0');
if(tempa%8==0)
{
//cout<<"A"<<endl;
cout<<"YES"<<endl;
cout<<tempa<<endl;
return 0;
}
for(int y=x+1;y<lg;y++)
{
//cout<<"Y"<<y<<endl;
int tempb=tempa*10+(s[y]-'0');
if(tempb%8==0)
{
//cout<<"B"<<endl;
cout<<"YES"<<endl;
cout<<tempb<<endl;
return 0;
}
for(int z=y+1;z<lg;z++)
{
//cout<<"Z"<<z<<endl;
int tempc=tempb*10+s[z]-'0';
if(tempc%8==0)
{
//cout<<"C"<<endl;
cout<<"YES"<<endl;
cout<<tempc<<endl;
return 0;
}
}
}
}
cout<<"NO"<<endl;
}
限制:
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output