이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "vision.h"
#include<bits/stdc++.h>
using namespace std;
void construct_network(int H, int W, int K){
int l=0;
int r=W*H-1;
int m=l+r;
m/=2;
while(l<=r){
vector<int> a;
for(int i=0;i<=m;i++){
a.push_back(i);
}
bool d=add_xor(a);
if(d){
break;
}
bool dd=add_or(a);
if(dd){
r=m-1;
m=(l+r)/2;
continue;
}
l=m+1;
m=(l+r)/2;
}
int ll=m+1;
int rr=r;
r=m;
int mm=(ll+rr)/2;
while(l<=r){
vector<int> a;
for(int i=0;i<=m;i++){
a.push_back(i);
}
bool d=(add_or(a)==1);
if(d){
if(add_not(m)==0){
break;
}
r=m-1;
m=(l+r)/2;
continue;
}
l=m+1;
m=(l+r)/2;
}
while(ll<=rr){
vector<int> a;
for(int i=ll;i<=mm;i++){
a.push_back(i);
}
bool d=(add_or(a)==1);
if(d){
if(add_not(mm)==0){
break;
}
rr=mm-1;
mm=(ll+rr)/2;
continue;
}
ll=mm+1;
mm=(ll+rr)/2;
}
vector<int> k;
k.push_back(m);
k.push_back(mm);
if(abs((int)(m%W)-(int)(mm%W))+abs((int)(m/W)-(int)(mm/W))==K){
add_and(k);
}
add_not(m);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |