Submission #153453

#TimeUsernameProblemLanguageResultExecution timeMemory
153453myungwooVision Program (IOI19_vision)C++14
52 / 100
6 ms760 KiB
#include <bits/stdc++.h>
#include "vision.h"
using namespace std;

int num[201][201];

void construct_network(int H, int W, int K)
{
	int idx = 0;
	for (int i=1;i<=H;i++) for (int j=1;j<=W;j++) num[i][j] = idx++;
	vector <int> or_arr;
	for (int i=1;i<=H;i++) for (int j=1;j<=W;j++){
		// Subtask 6
		if (!(H <= 30 && W <= 30 || min(H, W) == 1))
			if (i != 1 || j != 1)
				continue;
		vector <int> diamond;
		for (int dy=-K;dy<=K;dy++){
			for (int sx=-1;sx<2;sx+=2){
				int dx = sx*(K-abs(dy));
				int y = i+dy, x = j+dx;
				if (y < 1 || y > H || x < 1 || x > W) continue;
				diamond.push_back(num[y][x]);
			}
		}
		if (diamond.empty()) continue;
		int x = add_or(diamond);
		or_arr.push_back(add_and({x, num[i][j]}));
	}
	add_or(or_arr);
}

Compilation message (stderr)

vision.cpp: In function 'void construct_network(int, int, int)':
vision.cpp:14:17: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
   if (!(H <= 30 && W <= 30 || min(H, W) == 1))
         ~~~~~~~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...