| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1287236 | khoavn2008 | Broken Device (JOI17_broken_device) | C++17 | 25 ms | 1580 KiB |
#include "Annalib.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld double
#define FOR(i,l,r) for(int i = (l), _r = (r); i <= _r; i++)
#define FORNG(i,r,l) for(int i = (r), _l = (l); i >= _l; i--)
#define REP(i,r) for(int i = 0, _r = (r); i < _r; i++)
#define endl '\n'
#define fi first
#define se second
#define pb push_back
#define all(v) (v).begin(),(v).end()
#define size(v) ((ll)(v).size())
#define MASK(x) (1LL << (x))
#define BIT(x, i) (((x) >> (i)) & 1)
//const ll MOD = 1e9 + 7, N = 1e5 + 10, INF = 1e9, LOG = 21;
//void Set(int p,int v){}
void Anna( int N, long long X, int K, int P[] ){
mt19937 rd(2008);
vector<bool> bit(N), bad(N);
REP(i,K)bad[P[i]] = 1;
vector<int> a;
REP(i,38){
a.pb(X % 3);
X /= 3;
}
reverse(all(a));
REP(i,size(a))a[i] = (a[i] + 1) % 3;
int c = 0;
for(int i = 0; i < N; i += 2){
if(c == 38)break;
int v = a[c] + 1;
if(bad[i] && bad[i + 1])continue;
else if(bad[i]){
if(!BIT(v, 1)){
bit[i] = 0,bit[i + 1] = BIT(v, 0);
c++;
continue;
}
}else if(bad[i + 1]){
if(!BIT(v, 0)){
bit[i] = BIT(v, 1),bit[i + 1] = 0;
c++;
continue;
}
}else{
bit[i] = BIT(v, 1), bit[i + 1] = BIT(v, 0);
c++;
}
}
// REP(i,N)cout<<bit[i];
REP(i,N)Set(i, bit[i]);
}
#ifdef KHOA
int main(){
int N = 150;
int K = 2;
int X = 7;
int P[] = {2, 3};
Anna(N, X, K, P);
}
#endif // KHOA
#include "Brunolib.h"
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define ld double
#define FOR(i,l,r) for(int i = (l), _r = (r); i <= _r; i++)
#define FORNG(i,r,l) for(int i = (r), _l = (l); i >= _l; i--)
#define REP(i,r) for(int i = 0, _r = (r); i < _r; i++)
#define endl '\n'
#define fi first
#define se second
#define pb push_back
#define all(v) (v).begin(),(v).end()
#define size(v) ((ll)(v).size())
#define MASK(x) (1LL << (x))
#define BIT(x, i) (((x) >> (i)) & 1)
//const ll MOD = 1e9 + 7, N = 1e5 + 10, INF = 1e9, LOG = 21;
long long Bruno( int N, int A[] ){
mt19937 rd(2008);
long long X = 0;
for(int i = 0; i < N; i += 2){
if(A[i] == 0 && A[i + 1] == 0)continue;
long long c = (((A[i] << 1) + A[i + 1] - 1) - 1 + 3) % 3;
X = X * 3 + c;
}
return X;
}
#ifdef KHOA
int main(){
int N = 10;
int A[] = {1,0,0,0,1,0,1,0,1,0};
cout<<Bruno(N, A);
}
#endif // KHOA
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
