Submission #718820

#TimeUsernameProblemLanguageResultExecution timeMemory
718820Hacv16Broken Device (JOI17_broken_device)C++17
0 / 100
1 ms468 KiB
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;

void Anna(int N, ll X, int K, int P[]){
    vector<bool> blocked(N);

    for(int i = 0; i < K; i++){
        int curBit = P[i];
        blocked[curBit] = true;
    }

    int numFree = 0;

    for(int i = 0; i < N; i++){
        if(!blocked[i]){ numFree++; continue; }

        if(numFree % 2) blocked[i - 1] = true;
        blocked[i] = true; numFree = 0;
    }

    vector<int> goodPos;

    for(int i = 0; i < N; i++){
        if(blocked[i]) Set(i, 0);
        else goodPos.push_back(i);
    }

    assert(goodPos.size() % 2 == 0);

    for(int i = 0, j = 0; i < goodPos.size(); i += 2, j++){
        int pos1 = goodPos[i], pos2 = goodPos[i + 1];

        int bitOn = (bool)((1 << j) & X);
        Set(pos1, 1); Set(pos2, bitOn);
    }
}
#include "Brunolib.h"
#include <bits/stdc++.h>

typedef long long ll;

ll Bruno(int N, int A[]){
  ll ans = 0;

  for(int i = 0, j = 0; i < N; i += 2){
    if(A[i] == 0) continue;
    ans |= (A[i + 1] << j); j++;
  }

  return ans;
}

Compilation message (stderr)

Anna.cpp: In function 'void Anna(int, ll, int, int*)':
Anna.cpp:33:29: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   33 |     for(int i = 0, j = 0; i < goodPos.size(); i += 2, j++){
      |                           ~~^~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...