A50541.a + b 题解
2025-06-23 05:47:04
发布于:北京
25阅读
0回复
0点赞
我是不会告诉你本来想暴力骗分结果不小心过了的
直觉告诉我们如果较小的数据下没有答案,较大数据中也不太可能有。所以枚举 到 即可。
时间复杂度:.
空间复杂度:.
Code:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
string sa,sb,sc;
bool a[10],b[10],c[10];
inline bool can(ll x, bool* arr){
if(x==0) return arr[0];
while(x){
if(!arr[x%10]) return false;
x/=10;
}
return true;
}
int main(){
cin>>sa>>sb>>sc;
for(auto &i:sa) a[i^48]=true;
for(auto &i:sb) b[i^48]=true;
for(auto &i:sc) c[i^48]=true;
for(ll i=0;i<1000;i++){
if(!can(i,a)) continue;
for(ll j=0;j<1000;j++){
if(!can(j,b)) continue;
ll k=i+j;
if(can(k,c)){
cout<<i<<' '<<j<<' '<<k;
return 0;
}
}
}
cout<<"impossible";
return 0;
}
这里空空如也
有帮助,赞一个