Submission #821502

#TimeUsernameProblemLanguageResultExecution timeMemory
821502radaiosm7Mars (APIO22_mars)C++17
0 / 100
1 ms236 KiB
#include "mars.h"
#include <bits/stdc++.h>
using namespace std;

int id(int i, int j, int n) {
	return i*n+j;
}

bool valid(int i, int j, int n) {
	if (i < 0) return false;
	if (i >= n) return false;
	if (j < 0) return false;
	if (j >= n) return false;
	return true;
}

string process(vector<vector<string> > a, int i, int j, int k, int n) {
	string ans(100, '0');
	int tn = n;
	n = 2*n+1;

	if (k == 0) for (int dx=0; dx < 3; ++dx) for (int dy=0; dy < 3; ++dy) if (a[dx][dy][0] == '1') ans[id(i+dx, j+dy, n)] = '1';
	else for (int dx=0; dx < 3; ++dx) for (int dy=0; dy < 3; ++dy) for (int jk=0; jk < 100; ++jk) if (a[dx][dy][jk] == '1') ans[jk] = '1';

	if (k == tn-1) {
		char mat[n][n];
		bool vis[n][n];
		for (int dx=0; dx < n; ++dx) for (int dy=0; dy < n; ++dy) vis[dx][dy] = false;
		for (int dx=0; dx < n; ++dx) for (int dy=0; dy < n; ++dy) mat[dx][dy] = ans[id(dx, dy, n)];
		int cc = 0;

		for (int dx=0; dx < n; ++dx) {
			for (int dy=0; dy < n; ++dy) {
				if (mat[dx][dy] == '1') {
					if (!vis[dx][dy]) {
						if (!valid(dx+1, dy, n)) ++cc;
						else if (!vis[dx+1][dy]) ++cc;
					}

					vis[dx][dy] = true;
					if (valid(dx+1, dy, n)) vis[dx+1][dy] = true;
					if (valid(dx, dy+1, n)) vis[dx][dy+1] = true;
				}
			}
		}

		string conn(100, '0');
		for (i=0; i < 9; ++i) if (cc & (1 << i)) conn[i] = '1';
		return conn;
	}

	else return ans;
}

Compilation message (stderr)

mars.cpp: In function 'std::string process(std::vector<std::vector<std::__cxx11::basic_string<char> > >, int, int, int, int)':
mars.cpp:22:5: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
   22 |  if (k == 0) for (int dx=0; dx < 3; ++dx) for (int dy=0; dy < 3; ++dy) if (a[dx][dy][0] == '1') ans[id(i+dx, j+dy, n)] = '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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...