fork download
  1. #pragma GCC optimize("Ofast,no-stack-protector,unroll-loops")
  2. #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
  3. #include <bits/stdc++.h>
  4. #include <ext/pb_ds/tree_policy.hpp>
  5. #include <ext/pb_ds/assoc_container.hpp>
  6. #define black_tree tree<ll,null_type,less_equal<ll>,rb_tree_tag,tree_order_statistics_node_update>
  7. #define pair_black_tree tree<pair<ll,ll>,null_type,less<pair<ll,ll> >,rb_tree_tag,tree_order_statistics_node_update>
  8. #define gp __gnu_pbds
  9. #define INF 1000000000
  10. #define MOD 123456789
  11. #define MAX 1000000
  12. #define endl '\n'
  13. #define ll long long
  14. #define ld long double
  15. #define lli long long int
  16. #define ull unsigned long long
  17. #define ulli unsigned long long int
  18. #define pb push_back
  19. #define pf push_front
  20. #define ook order_of_key
  21. #define fbo find_by_order
  22. #define np next_permutation
  23. #define mp make_pair
  24. #define eb emplace_back
  25. #define mae max_element
  26. #define mie min_element
  27. #define lb lower_bound
  28. #define ub upper_bound
  29. #define bs binary_search
  30. #define ff first
  31. #define ss second
  32. using namespace std;
  33. using namespace gp;
  34. vector<int>v(MAX);
  35. int n,a;
  36. void initialize(){
  37. for(int i=1;i<MAX;i++){
  38. v[i]=1;
  39. }
  40. }
  41. int main(){
  42. ios::sync_with_stdio(false);
  43. cin.tie(0);
  44. cout.tie(0);
  45. initialize();
  46. cin>>n;
  47. while(n--){
  48. cin>>a;
  49. if(a<0){
  50. a=-a;
  51. v[a]=1;
  52. }
  53. else{
  54. int i=lb(v.begin()+a,v.end(),1)-v.begin();
  55. if(v[i]==0){
  56. i++;
  57. }
  58. cout<<i<<endl;
  59. v[i]=0;
  60. }
  61. }
  62. }
Success #stdin #stdout 0s 6996KB
stdin
Standard input is empty
stdout
Standard output is empty