cf988D
集合的大小不会超过三
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #include<bits/stdc++.h> #define forn(i, n) for (int i = 0 ; i < int(n) ; i++) #define fore(i, s, t) for (int i = s ; i < (int)t ; i++) #define fi first #define se second #define all(x) x.begin(),x.end() #define pf2(x,y) printf("%d %d\n",x,y) #define pf(x) printf("%d\n",x) #define each(x) for(auto it:x) cout<<it<<endl; #define pii pair<int,int> #define sc(x) scanf("%d",&x) using namespace std; typedef long long ll; const int maxn=2e5+5; const int maxm=2e5+5; const int inf=1e9; int main(){ int n; cin>>n; vector< int > a(n); for ( int i=0;i<n;i++) cin>>a[i]; sort(all(a)); vector< int > ans = {a[0]}; for ( int i=0;i<n;i++){ for ( int j=0;j<31;j++){ int lx=a[i]-(1<<j); int rx=a[i]+(1<<j); bool isl=binary_search(all(a),lx); bool isr=binary_search(all(a),rx); if (isl && isr && ans.size()<3) { ans={lx,a[i],rx}; } if (isl && ans.size()<2) ans={lx,a[i]}; if (isr && ans.size()<2) ans={a[i],rx}; } } cout<<ans.size()<<endl; for ( auto it:ans) cout<<it<< ' ' ; cout<<endl; } |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步