이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "vision.h"
#include <bits/stdc++.h>
using namespace std;
#define rep(n) for (int i=0; i<n; i++)
#define jrep(n) for (int j=0; j<n; j++)
const int c=402, f=399;
int pos, os[c], osk[c], oseg[c], kul[c], kulk[c], kseg[c], eos, ekul, van, s, nincs, rossz, db, p;
vector<int> sol;
void pb(int a) {
sol.push_back(a);
}
int add(int a) {
pos++;
if (sol.size()==0) sol.push_back(rossz);
if (a==1) add_or(sol);
if (a==2) add_and(sol);
if (a==3) add_xor(sol);
if (a==4) add_not(p);
sol.clear();
return pos;
}
int solve(int k) {
rep(f-k) {
pb(eos), pb(osk[i]), pb(osk[i+k]);
oseg[i]=add(2);
pb(ekul), pb(kulk[i]), pb(kulk[i+k]);
kseg[i]=add(2);
}
rep(f-k) pb(oseg[i]);
oseg[0]=add(1);
rep(f-k) pb(kseg[i]);
kseg[0]=add(1);
pb(oseg[0]), pb(kseg[0]);
return add(1);
}
void construct_network(int n, int m, int k) {
pos=n*m-1, db=n*m;
rep(db) pb(i);
rossz=add(3);
rep(f) {
int ert=i;
rep(db) {
int x=i/m, y=i%m;
if (x+199-y==ert) pb(i);
}
kul[ert]=add(1);
rep(db) {
int x=i/m, y=i%m;
if (x+y==ert) pb(i);
}
os[ert]=add(1);
if (!i) kulk[i]=kul[i], osk[i]=os[i];
else {
pb(kulk[i-1]), pb(kul[i]);
kulk[i]=add(3);
pb(osk[i-1]), pb(os[i]);
osk[i]=add(3);
}
}
p=kulk[f-1], ekul=add(4);
p=osk[f-1], eos=add(4);
nincs=solve(k-1), van=solve(k);
pb(van), pb(nincs);
add(3);
}
/*
int main()
{
return 0;
}
*/
# | 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... |