1 solutions
-
0
#include<bits/stdc++.h> using namespace std; int main() { string s; cin>>s; int minv=30; for(int i=0;i<1<<s.size();i++) { int sum=0,cnt=0; for(int j=0;j<s.size();j++) { if(i>>j&1) //当前位移除 { cnt++; } else { sum=sum+(s[j]-'0');//未移除的和 } } if(sum!=0&&sum%3==0) //存在至少一个数且当前数是3的倍数 { minv=min(minv,cnt); } } if(minv==30) cout<<-1; //找不到合法解 else cout<<minv; //输出最小移动次数 return 0; }
- 1
Information
- ID
- 2683
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 3
- Tags
- # Submissions
- 8
- Accepted
- 5
- Uploaded By