結果

問題 No.483 マッチ並べ
ユーザー HAHAHAHAHAHA
提出日時 2017-02-13 13:02:24
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 5 ms / 2,000 ms
コード長 760 bytes
コンパイル時間 2,169 ms
コンパイル使用メモリ 171,840 KB
実行使用メモリ 6,400 KB
最終ジャッジ日時 2024-12-29 18:41:17
合計ジャッジ時間 4,071 ms
ジャッジサーバーID
(参考情報)
judge3 / judge4
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 53
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;


typedef pair<int, int> P;


const int W = 100;
const int MAX = 1e5+100;

vector<int> G[MAX];
int vis[MAX];
int cnt;


void dfs(int a, int b){
	vis[a] = 1;
	for(int x : G[a]){
		if(x == b)
			continue;
		if(vis[x]){
			cnt++;
			continue;
		}

		dfs(x, a);
	}
}

int main() {
	int n;
	cin >> n;
	
	int r1, c1, r2, c2;
	vector<P> edge;
	for(int i=0; i<n; i++){
		cin >> r1 >> c1 >> r2 >> c2;
		r1--; c1--; r2--; c2--;

		int a = r1 * W + c1;
		int b = r2 * W + c2;
		G[a].push_back(b);
		G[b].push_back(a);
		edge.push_back(P(a, b));
	}

	for(int i=0;i<MAX;i++){
		if(vis[i])
			continue;

		cnt = 0;
		dfs(i, -1);
		if (cnt >= 4) {
			cout << "NO" << endl;
			return 0;
		}
	}

	cout << "YES" << endl;
	return 0;
}
0