백준10252 그리드 그래프

문제 링크

  • http://icpc.me/10252

문제 출처

  • 2014 ACM-ICPC 대전 인터넷 예선 C번

풀이


높이가 짝수면 왼쪽, 홀수면 오른쪽 그림과 같이 해주면 항상 사이클을 찾을 수 있습니다.

전체 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
using namespace std;

void solve(){
	int n, m; cin >> n >> m;
	cout << 1 << "\n";
	for(int j=0; j<m; j++) cout << "(" << 0 << ", " << j << ")\n";

	for(int i=1; i<n; i++){
		if(i&1){
			for(int j=m-1; j>=1; j--) cout << "(" << i << ", " << j << ")\n";
		}else{
			for(int j=1; j<m; j++) cout << "(" << i << ", " << j << ")\n";
		}
	}
	for(int i=n-1; i>=1; i--) cout << "(" << i << ", " << 0 << ")\n";
}

int main(){
	ios_base::sync_with_stdio(0); cin.tie(0);
	int t; cin >> t;
	while(t--) solve();
}