답안 #786034

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
786034 2023-07-17T22:57:00 Z yeyso 화성 (APIO22_mars) C++17
6 / 100
8 ms 2324 KB
#include "mars.h"
#include <bits/stdc++.h>
using namespace std;
vector<vector<int>> m;
vector<vector<int>> v;
void dfs(int i, int j, int z){
	
	if(!v[i][j] and m[i][j] != 48){
		v[i][j] = z;
		
		if(i < m.size() - 1) dfs(i+1, j, z);
		if(j < m.size() - 1) dfs(i, j+1, z);
		if(i > 0) dfs(i-1, j, z);
		if(j > 0) dfs(i, j-1, z);
	}
}
string process(vector<vector<string>> a, int i, int j, int k, int n)
{	
	if(k == 0){
		string z(100, '0');
		vector<vector<int>> g(3, vector<int>(3, 0));
		v = g;
		int x = 0;
		for(int i = 0; i < 3; i ++){
			for(int j = 0; j < 3; j ++){
				z[x] = a[i][j][0];
				g[i][j] = a[i][j][0];
				x += 1;
			}
		}
		if(n == 1){
			m = g;
			x = 1;
			for(int i = 0; i < g.size(); i ++){
				for(int j = 0; j < g[i].size(); j ++){
				//cout << g[i][j] << " ";
					dfs(i, j, x);
					x += 1;
				} //cout << "\n";
			}
			set<int> is;
			for(int i = 0; i < v.size(); i ++){
				for(int j = 0; j < v[i].size(); j ++){
					is.insert(v[i][j]);
				}
			}
			string res = bitset<100>(is.size() - 1).to_string();
			reverse(res.begin(), res.end());
			return res;
		}
		return z;
	}
	if(n == 2)
		if(k == 1){
		//cout << "hi";
		vector<vector<int>> grid(5, vector<int>(5, 0));
		v = grid;
		int x = 0;
		for(int i = 0; i < 3; i ++){
			for(int j = 0; j < 3; j ++){
				grid[i][j] = a[0][0][x]; x += 1;
			}
		} x = 0;
		for(int i = 0; i < 3; i ++){
			for(int j = 2; j < 5; j ++){
				grid[i][j] = a[0][2][x]; x += 1;
			}
		} x = 0;
		for(int i = 2; i < 5; i ++){
			for(int j = 0; j < 3; j ++){
				grid[i][j] = a[2][0][x]; x += 1;
			}
		} x = 0;
		for(int i = 2; i < 5; i ++){
			for(int j = 2; j < 5; j ++){
				grid[i][j] = a[2][2][x]; x += 1;
			}
		}
		m = grid;
		x = 1;
		
		for(int i = 0; i < grid.size(); i ++){
			for(int j = 0; j < grid[i].size(); j ++){
				//cout << grid[i][j] << " ";
				dfs(i, j, x);
				x += 1;
			} //cout << "\n";
		}
		set<int> is;
		for(int i = 0; i < v.size(); i ++){
			for(int j = 0; j < v[i].size(); j ++){
				//cout << v[i][j] << " ";
				is.insert(v[i][j]);
			} //cout << "\n";
		}
		string res = bitset<100>(is.size() - 1).to_string();
		reverse(res.begin(), res.end());
		return res;
		
		

	}

	
	return std::string(100 ,'0');
}
/*
g++ -Wall -lm -static -DEVAL -o mars -O2 mars.cpp grader.cpp -std=c++17
1
2
1 1 0 1 1
1 1 0 0 1
1 0 0 1 1
0 0 0 0 0
1 0 1 1 1

1
1
1 1 0 
1 1 0 
1 0 1 

1 0 1 0 1

*/

Compilation message

mars.cpp: In function 'void dfs(int, int, int)':
mars.cpp:11:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |   if(i < m.size() - 1) dfs(i+1, j, z);
      |      ~~^~~~~~~~~~~~~~
mars.cpp:12:8: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |   if(j < m.size() - 1) dfs(i, j+1, z);
      |      ~~^~~~~~~~~~~~~~
mars.cpp: In function 'std::string process(std::vector<std::vector<std::__cxx11::basic_string<char> > >, int, int, int, int)':
mars.cpp:34:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |    for(int i = 0; i < g.size(); i ++){
      |                   ~~^~~~~~~~~~
mars.cpp:35:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   35 |     for(int j = 0; j < g[i].size(); j ++){
      |                    ~~^~~~~~~~~~~~~
mars.cpp:42:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |    for(int i = 0; i < v.size(); i ++){
      |                   ~~^~~~~~~~~~
mars.cpp:43:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for(int j = 0; j < v[i].size(); j ++){
      |                    ~~^~~~~~~~~~~~~
mars.cpp:82:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   82 |   for(int i = 0; i < grid.size(); i ++){
      |                  ~~^~~~~~~~~~~~~
mars.cpp:83:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   83 |    for(int j = 0; j < grid[i].size(); j ++){
      |                   ~~^~~~~~~~~~~~~~~~
mars.cpp:90:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   90 |   for(int i = 0; i < v.size(); i ++){
      |                  ~~^~~~~~~~~~
mars.cpp:91:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   91 |    for(int j = 0; j < v[i].size(); j ++){
      |                   ~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 5 ms 2036 KB Output is correct
2 Correct 4 ms 2068 KB Output is correct
3 Correct 7 ms 2028 KB Output is correct
4 Correct 8 ms 2044 KB Output is correct
5 Correct 6 ms 1880 KB Output is correct
6 Correct 4 ms 2324 KB Output is correct
7 Incorrect 1 ms 200 KB Incorrect
8 Halted 0 ms 0 KB -