| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1307655 | florescent | Broken Device (JOI17_broken_device) | C++20 | 0 ms | 0 KiB |
//STRIKER!
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <unordered_map>
#include <cmath>
#include <queue>
#include <iomanip>
#include <numeric>
#include <random>
#include <chrono>
#include <Annalib.h>
using namespace std;
//#define int int64_t //uint64_t
#define pb push_back
#define perfectblue cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false);
#define all(a) a.begin(), a.end()
#define sz(a) ((int)a.size())
void Anna(int N, long long X, int K, int P[]) {
vector<int> is(N, 0);
for (int i = 0; i < K; i++) {
is[P[i]] = 1;
}
string ans = "";
for (int i = 0; i < N - 2; i += 3) {
int sum = is[i] + is[i + 1] + is[i + 2];
if (sum > 1) {
continue;
}
if (sum == 1) {
if (is[i]) {
if (X & 1) {
ans += "010";
}
else {
ans += "001";
}
}
else if (is[i + 1]) {
if (X & 1) {
ans += "101";
}
else {
ans += "001";
}
}
else {
if (X & 1) {
ans += "010";
}
else if (X & 2) {
ans += "110";
}
else {
ans += "100";
}
}
X >>= 1;
}
else {
if (X & 3) {
ans += "111";
}
else if (X & 2) {
ans += "110";
}
else if (X & 1) {
ans += "011";
}
else {
ans += "100";
}
X >>= 2;
}
}
for (int i = 0; i < N; i++) {
if (ans[i] - '0') {
Set(i, 1);
}
else {
Set(i, 0);
}
}
}
//STRIKER!
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <map>
#include <set>
#include <unordered_map>
#include <cmath>
#include <queue>
#include <iomanip>
#include <numeric>
#include <random>
#include <chrono>
#include <Brunolib.h>
using namespace std;
//#define int int64_t //uint64_t
#define pb push_back
#define perfectblue cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false);
#define all(a) a.begin(), a.end()
#define sz(a) ((int)a.size())
long long Bruno(int N, int A[]) {
long long ans = 0;
for (int i = N - 1; i - 2 >= 0; i -= 3) {
if (A[i] == 0 and A[i - 1] == 0 and A[i - 2] == 1) {
ans <<= 1;
}
else if (A[i] == 0 and A[i - 1] == 1 and A[i - 2] == 0) {
ans <<= 1;
ans++;
}
else if (A[i] == 1 and A[i - 1] == 0 and A[i - 2] == 0) {
ans <<= 2;
}
else if (A[i] == 0 and A[i - 1] == 1 and A[i - 2] == 1) {
ans <<= 2;
ans++;
}
else if (A[i] == 1 and A[i - 1] == 1 and A[i - 2] == 0) {
ans <<= 1;
ans++;
ans <<= 1;
}
else if (A[i] == 1 and A[i - 1] == 0 and A[i - 2] == 1) {
ans <<= 1;
ans++;
}
else if (A[i] == 1 and A[i - 1] == 1 and A[i - 2] == 1) {
ans <<= 1;
ans++;
ans <<= 1;
ans++;
}
}
return ans;
}
