Submission #1350202

#TimeUsernameProblemLanguageResultExecution timeMemory
1350202avighnaBroken Device 2 (JOI22_device2)C++20
80 / 100
33 ms2608 KiB
#include "Anna.h"
#include <bits/stdc++.h>

int Declare() { return 180; }

std::pair<std::vector<int>, std::vector<int>> Anna(long long A) {
  std::vector<int> a;
  for (int bt = 0; bt < 60; ++bt) { // multiples of 3 => high voltage
    if (A & 1ll << bt) {
      a.push_back(1);
      a.push_back(1);
      a.push_back(1);
    } else {
      a.push_back(0);
      a.push_back(0);
      a.push_back(0);
    }
  }
  std::vector<int> b(a.size());
  for (int i = 0; i < a.size(); i += 2) {
    b[i] = 1;
  }
  return {a, b};
}
#include "Bruno.h"
#include <bits/stdc++.h>

long long Bruno(std::vector<int> u) {
  std::string s;
  int sum = 0, prev = 0;
  for (int &i : u) {
    sum += (i << 1) - 1;
    int cur = 0, good = 0;
    if (sum >= 0) {
      if (sum % 3 == 0 || sum % 3 == 1) {
        good = 1, cur = sum / 3;
      }
    } else {
      if ((-sum) % 3 == 0 || (-sum) % 3 == 2) {
        good = 1, cur = (sum - 1) / 3;
      }
    }
    if (good && prev != cur) {
      s.push_back('0' + (cur > prev));
      prev = cur;
    }
  }
  std::reverse(s.begin(), s.end());
  return std::stoll(s, nullptr, 2);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...