0086 - Patrol

#include <iostream>
using namespace std;

void Slove(void)	{
	int a, b;

	while (cin >> a >> b)	{
		int graph[100]={0};
		while ( !(!a && !b) )	{
			++graph[--a]; ++graph[--b];
			cin >> a >> b;
		}
		bool flg=true;
		if ( !(graph[1]%2) || !(graph[1]%2) )	flg=false;
		for (int i=2; i<100; ++i)
			if (graph[i]%2)	flg=false;
		cout << (flg? "OK" : "NG") << endl;
	}
}
		
int main(void)	{
	Slove();
	return 0;
}

一筆書きで有名なケーニヒスベルクの橋を参考
始点と終点が奇数点で、他の地点が全て偶数点なら一筆書きが出来る。