Submission #34289878


Source Code Expand

#include <iostream>
#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
#include <cmath>

using namespace std;

#define mp make_pair
#define pb push_back
#define ll long long

const int maxN = 200011;

struct Item {
  ll value, cost;

  Item advance_bit(int bit) {
    ll b = 1 << bit;

    if (value & b) 
      return *this;

    ll next = ((value >> bit) | 1) << bit;
    return {
      .value = next,
      .cost = cost + next - value
    };
  }

  bool operator<(const Item &other) const {
    return cost < other.cost;
  }
};

int n, k;
ll m, sol;
Item v[maxN], aux[maxN];

void decide_bit(int bit) {
  for (int i = 0; i < n; i++)
    aux[i] = v[i].advance_bit(bit);

  nth_element(aux, aux + k - 1, aux + n);
  ll total = 0;

  for (int i = 0; i < k; i++)
    total += aux[i].cost;

  if (total <= m) { 
    sol |= 1 << bit;
    memcpy(v, aux, sizeof(v));
  }
}

int main()
{

  cin >> n >> m >> k;
  for (int i = 0; i < n; i++) {
    cin >> v[i].value;
    v[i].cost = 0;
  }

  for (int bit = 31; bit >= 0; bit--)
    decide_bit(bit);
  
  cout << sol;


  return 0;
}

Submission Info

Submission Time
Task B - Plus and AND
User atatomir
Language C++ (GCC 9.2.1)
Score 500
Code Size 1175 Byte
Status AC
Exec Time 127 ms
Memory 9856 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 2
AC × 58
Set Name Test Cases
Sample example_00.txt, example_01.txt
All example_00.txt, example_01.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt, test_50.txt, test_51.txt, test_52.txt, test_53.txt, test_54.txt, test_55.txt
Case Name Status Exec Time Memory
example_00.txt AC 10 ms 6660 KiB
example_01.txt AC 7 ms 6680 KiB
test_00.txt AC 95 ms 9040 KiB
test_01.txt AC 125 ms 9648 KiB
test_02.txt AC 102 ms 9100 KiB
test_03.txt AC 78 ms 8400 KiB
test_04.txt AC 24 ms 7080 KiB
test_05.txt AC 101 ms 9340 KiB
test_06.txt AC 53 ms 7820 KiB
test_07.txt AC 43 ms 7772 KiB
test_08.txt AC 59 ms 8120 KiB
test_09.txt AC 97 ms 9396 KiB
test_10.txt AC 10 ms 6764 KiB
test_11.txt AC 24 ms 6992 KiB
test_12.txt AC 37 ms 7428 KiB
test_13.txt AC 25 ms 6912 KiB
test_14.txt AC 75 ms 8412 KiB
test_15.txt AC 42 ms 7740 KiB
test_16.txt AC 19 ms 6796 KiB
test_17.txt AC 26 ms 7024 KiB
test_18.txt AC 99 ms 9176 KiB
test_19.txt AC 87 ms 9160 KiB
test_20.txt AC 127 ms 9800 KiB
test_21.txt AC 125 ms 9696 KiB
test_22.txt AC 111 ms 9772 KiB
test_23.txt AC 125 ms 9776 KiB
test_24.txt AC 110 ms 9764 KiB
test_25.txt AC 96 ms 9768 KiB
test_26.txt AC 126 ms 9700 KiB
test_27.txt AC 122 ms 9856 KiB
test_28.txt AC 103 ms 9640 KiB
test_29.txt AC 120 ms 9700 KiB
test_30.txt AC 98 ms 9144 KiB
test_31.txt AC 45 ms 5188 KiB
test_32.txt AC 101 ms 9240 KiB
test_33.txt AC 15 ms 3820 KiB
test_34.txt AC 109 ms 9520 KiB
test_35.txt AC 118 ms 9752 KiB
test_36.txt AC 43 ms 7408 KiB
test_37.txt AC 86 ms 8708 KiB
test_38.txt AC 13 ms 6692 KiB
test_39.txt AC 17 ms 6876 KiB
test_40.txt AC 112 ms 9484 KiB
test_41.txt AC 43 ms 7460 KiB
test_42.txt AC 94 ms 9360 KiB
test_43.txt AC 61 ms 8152 KiB
test_44.txt AC 31 ms 7220 KiB
test_45.txt AC 65 ms 8548 KiB
test_46.txt AC 77 ms 8516 KiB
test_47.txt AC 118 ms 9652 KiB
test_48.txt AC 22 ms 7052 KiB
test_49.txt AC 42 ms 7464 KiB
test_50.txt AC 43 ms 7580 KiB
test_51.txt AC 85 ms 8728 KiB
test_52.txt AC 13 ms 6612 KiB
test_53.txt AC 123 ms 9788 KiB
test_54.txt AC 55 ms 7920 KiB
test_55.txt AC 88 ms 8732 KiB