이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
#include <cassert>
#include <string>
#include "vision.h"
using namespace std;
/// ---------------------------------------------------------------------------------
int res[1000010];
int convert (int x , int y , int n , int m){
return (x - 1) * m + y - 1;
}
int in_matrix (int i , int j , int n , int m){
return (i > 0 && j > 0 && i <= n && j <= m);
}
void construct_network(int n, int m, int k) {
int i , j , pi , pj , op;
vector <int> v;
op = 0;
for (i = 1 ; i <= n ; i++){
for (j = 1 ; j <= m ; j++){
v.clear();
for (pi = 0 ; pi <= k ; pi++){
pj = k - pi;
//if (in_matrix(i + pi , j + pj , n , m))
// v.push_back(convert(i + pi , j + pj , n , m));
//if (in_matrix(i + pi , j - pj , n , m))
// v.push_back(convert(i + pi , j - pj , n , m));
if (in_matrix(i - pi , j + pj , n , m))
v.push_back(convert(i - pi , j + pj , n , m));
if (in_matrix(i - pi , j - pj , n , m) && pj)
v.push_back(convert(i - pi , j - pj , n , m));
}
if (v.empty())
continue;
add_xor(v);
op++;
v.clear();
v.push_back(n * m + (op - 1));
v.push_back(convert(i , j , n , m));
add_and(v);
op++;
/// res[ceva impar] e rezultatul unui and
}
}
v.clear();
for (i = 1 ; i < op ; i += 2){
v.push_back(n * m + i);
}
add_or(v);
}
# | 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... |