第11回
復習とか
担当:zeke
int main() {
cin.tie(0);
ios::sync_with_stdio(false);
cout << fixed << setprecision(10);
ll x,n;
cin>>x>>n;
V vec(n);
rep(i,n)cin>>vec[i];
sort(all(vec));
ll res=0;
rep(i,200){
if(!binary_search(all(vec),x-i)){
res=x-i;
break;
}
if(!binary_search(all(vec),x+i)){
res=x+i;
break;
}
}
cout<<res<<endl;
}2e5
1 2 3 4 …
int main() {
ll n;
cin>>n;
vector<bool> dp(1e6+100,false);
V vec(n);
map<ll,ll> mp;
map<ll,ll> mp2;
rep(i,n){
cin>>vec[i];
mp[vec[i]]++;
}
sort(all(vec));
rep(i,n){
ll index=2;
if(mp2[vec[i]]==1){
continue;
}
mp2[vec[i]]++;
while(vec[i]*index<=1e6+10){
dp[vec[i]*index]=true;
index++;
}
}
ll res=0;
rep(i,n){
if(dp[vec[i]]||mp[vec[i]]>=2){
// cout<<vec[i]<<endl;
res++;
}
}
cout<<n-res<<endl;
}
データ構造で殴るらしい
| 1 | 1 | 0 |
|---|---|---|
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 0 | 0 | 0 |
ANDとかORとかとはまた違う
入力例1を考える
まずは愚直にやるとO(N^2)当然間に合わない
| 10進数 | 2^1 | 2^0 |
|---|---|---|
| 1 | 0 | 1 |
| 2 | 1 | 0 |
| 3 | 1 | 1 |
Text