From MAILER-DAEMON Mon Jan 22 08:38:43 2001
Date: 22 Jan 2001 08:38:44 -0500
From: Mail System Internal Data <MAILER-DAEMON@east.isx.com>
Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA
X-IMAP: 0980170723 0000000000
Status: RO

This text is part of the internal format of your mail folder, and is not
a real message.  It is created automatically by the mail system software.
If deleted, important folder data will be lost, and it will be re-created
with the data reset to initial values.

From judge@east.isx.com Sun Jan 21 13:24:56 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id NAA02604
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:24:54 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA25385
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:15:13 -0500 (EST)
Received: from localhost (lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA14982
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:15:12 -0500 (EST)
Date: Sun, 21 Jan 2001 13:15:10 -0500 (EST)
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: Ananagrams Solution
Message-ID: <Pine.GSU.4.21.0101211314480.14978-200000@lennon.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="1915983931-1535183289-980100910=:14978"
Content-Length: 2831

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--1915983931-1535183289-980100910=:14978
Content-Type: TEXT/PLAIN; charset=US-ASCII


--1915983931-1535183289-980100910=:14978
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ananagrams.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSU.4.21.0101211315100.14978@lennon.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="ananagrams.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIGFuYW5hZ3JhbXMNDQp7DQ0KIHB1YmxpYyBzdGF0aWMg
dm9pZCBtYWluKFN0cmluZyBhcmd2W10pIHRocm93cyBFeGNlcHRpb24NDQog
ew0NCiAgQnVmZmVyZWRSZWFkZXIgaW49bmV3IEJ1ZmZlcmVkUmVhZGVyKG5l
dyBGaWxlUmVhZGVyKCJhbmFuYWdyYW1zLmluIikpOw0NCiAgUHJpbnRXcml0
ZXIgb3V0PW5ldyBQcmludFdyaXRlcihuZXcgRmlsZVdyaXRlcigiYW5hbmFn
cmFtcy5vdXQiKSk7DQ0KICBTdHJpbmcgcz1pbi5yZWFkTGluZSgpOw0NCiAg
U3RyaW5nIHMyPSIiOw0NCiAgd2hpbGUoIXMudHJpbSgpLmVxdWFscygiIyIp
KQ0NCiAgew0NCiAgIHMyKz0iICIrczsNDQogICBzPWluLnJlYWRMaW5lKCk7
DQ0KICB9DQ0KDQ0KICBWZWN0b3Igdj1uZXcgVmVjdG9yKCk7DQ0KICBTdHJp
bmdUb2tlbml6ZXIgc3Q9bmV3IFN0cmluZ1Rva2VuaXplcihzMik7DQ0KICB3
aGlsZShzdC5oYXNNb3JlVG9rZW5zKCkpDQ0KICAgdi5hZGRFbGVtZW50KHN0
Lm5leHRUb2tlbigpKTsNDQogIGludCBpPTA7DQ0KICB3aGlsZShpPHYuc2l6
ZSgpLTEpDQ0KICB7DQ0KICAgaW50IGo9aSsxOw0NCiAgIGJvb2xlYW4gZm91
bmQ9ZmFsc2U7DQ0KICAgd2hpbGUoajx2LnNpemUoKSkNDQogICB7DQ0KICAg
IGlmKGNvbXBhcmUodi5lbGVtZW50QXQoaSkudG9TdHJpbmcoKSx2LmVsZW1l
bnRBdChqKS50b1N0cmluZygpKSkNDQogICAgew0NCiAgICAgZm91bmQ9dHJ1
ZTsNDQogICAgIHYucmVtb3ZlRWxlbWVudEF0KGopOw0NCiAgICAgai0tOw0N
CiAgICB9DQ0KICAgIGorKzsNDQogICB9DQ0KICAgaWYoZm91bmQpDQ0KICAg
IHYucmVtb3ZlRWxlbWVudEF0KGktLSk7DQ0KICAgaSsrOw0NCiAgfQ0NCg0N
CiAgU3RyaW5nW10gej1uZXcgU3RyaW5nW3Yuc2l6ZSgpXTsNDQogIGZvcihp
PTA7aTx2LnNpemUoKTtpKyspDQ0KICAgeltpXT12LmVsZW1lbnRBdChpKS50
b1N0cmluZygpOw0NCiAgZm9yKGk9MDtpPHoubGVuZ3RoO2krKykNDQogICBm
b3IoaW50IGo9aSsxO2o8ei5sZW5ndGg7aisrKQ0NCiAgICBpZih6W2ldLmNv
bXBhcmVUbyh6W2pdKT4wKQ0NCiAgICB7DQ0KICAgICBTdHJpbmcgZD16W2ld
Ow0NCiAgICAgeltpXT16W2pdOw0NCiAgICAgeltqXT1kOw0NCiAgICB9DQ0K
ICBmb3IoaT0wO2k8ei5sZW5ndGg7aSsrKQ0NCiAgIG91dC5wcmludGxuKHpb
aV0pOw0NCiAgb3V0LmNsb3NlKCk7DQ0KIH0NDQoNDQogcHVibGljIHN0YXRp
YyBib29sZWFuIGNvbXBhcmUoU3RyaW5nIGEsU3RyaW5nIGIpDQ0KIHsNDQog
IGE9YS50b0xvd2VyQ2FzZSgpOw0NCiAgYj1iLnRvTG93ZXJDYXNlKCk7DQ0K
ICBpZihhLmxlbmd0aCgpIT1iLmxlbmd0aCgpKQ0NCiAgIHJldHVybiBmYWxz
ZTsNDQogIGZvcihjaGFyIGM9J2EnO2M8J3onO2MrKykNDQogIHsNDQogICBp
bnQgaT0wOw0NCiAgIGZvcihpbnQgZD0wO2Q8YS5sZW5ndGgoKTtkKyspDQ0K
ICAgew0NCiAgICBpZihhLmNoYXJBdChkKT09YykgaSsrOw0NCiAgICBpZihi
LmNoYXJBdChkKT09YykgaS0tOw0NCiAgIH0NDQogICBpZihpIT0wKSByZXR1
cm4gZmFsc2U7DQ0KICB9DQ0KICByZXR1cm4gdHJ1ZTsNDQogfQ0NCn0=
--1915983931-1535183289-980100910=:14978--

From judge@east.isx.com Sun Jan 21 13:26:46 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id NAA02613
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:26:45 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA25436
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:17:04 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id NAA15067
	for judge@east.isx.com; Sun, 21 Jan 2001 13:17:03 -0500 (EST)
Date: Sun, 21 Jan 2001 13:17:02 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: question
Message-ID: <20010121131702.A15032@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 145

In keywords, is there a limit to the number of words in a single
profile?  If so, what is the limit?

-- 
-Brian McNamara (lorgon@cc.gatech.edu)

From judge@east.isx.com Sun Jan 21 13:33:46 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id NAA02869
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:33:45 -0500 (EST)
Received: from felix.cc.gatech.edu (felix.cc.gatech.edu [130.207.107.11])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA25621
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:24:04 -0500 (EST)
Received: (from dminn@localhost)
	by felix.cc.gatech.edu (8.9.3+Sun/8.9.1) id NAA16223
	for judge@east.isx.com; Sun, 21 Jan 2001 13:24:02 -0500 (EST)
Date: Sun, 21 Jan 2001 13:24:02 -0500 (EST)
From: dminn@cc.gatech.edu (David C. Minnen)
Message-Id: <200101211824.NAA16223@felix.cc.gatech.edu>
Content-Type: text
Content-Length: 219

issue on problem tangles --

output is to "follow the example".  it is ambiguous whether the output
is in the order of the input presented, or alphabetical by target.
how should the output be ordered?

-nick (team gt)


From judge@east.isx.com Sun Jan 21 13:46:27 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id NAA03127
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:46:26 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA26013
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:36:45 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id NAA13900
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:36:44 -0500 (EST)
Date: Sun, 21 Jan 2001 13:36:44 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: question
Message-ID: <Pine.SOL.4.21.0101211336050.12125-100000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Content-Length: 140

In the sample output for prblem one (tangles), is the fourth line of
output correct?

					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)


From judge@east.isx.com Sun Jan 21 13:49:22 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id NAA03145
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:49:21 -0500 (EST)
Received: from felix.cc.gatech.edu (felix.cc.gatech.edu [130.207.107.11])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA26083
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:39:41 -0500 (EST)
Received: from localhost (dminn@localhost)
	by felix.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id NAA16538
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:39:40 -0500 (EST)
Date: Sun, 21 Jan 2001 13:39:40 -0500 (EST)
From: "David C. Minnen" <dminn@cc.gatech.edu>
To: judge@east.isx.com
Subject: ananagrams - java
Message-ID: <Pine.SOL.4.21.0101211339110.15683-200000@felix.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1804928587-980102380=:15683"
Content-Length: 3975

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1804928587-980102380=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII



 david


---559023410-1804928587-980102380=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ananagrams.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211339400.15683@felix.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="ananagrams.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLlN0cmluZ1Rv
a2VuaXplcjsNDQppbXBvcnQgamF2YS51dGlsLkFycmF5czsNDQpwdWJsaWMg
Y2xhc3MgYW5hbmFncmFtcw0NCnsNDQogIHN0YXRpYyBTdHJpbmcgZGljdFtd
Ow0NCiAgc3RhdGljIFN0cmluZyBkb25lW107DQ0KICBwdWJsaWMgc3RhdGlj
IHZvaWQgbWFpbihTdHJpbmcgYXJnc1tdKSB0aHJvd3MgSU9FeGNlcHRpb24N
DQogIHsNDQogICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oaXNhbmFncmFtKCJB
QkNEIiwgIkNCREEiKSk7DQ0KLy9TeXN0ZW0uZXhpdCgwKTsNDQogICAgQnVm
ZmVyZWRSZWFkZXIgYmluID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBGaWxl
UmVhZGVyKCJhbmFuYWdyYW1zLmluIikpOw0NCiAgICBQcmludFdyaXRlciBv
dXQgPSBuZXcgUHJpbnRXcml0ZXIobmV3IEZpbGVXcml0ZXIoImFuYW5hZ3Jh
bXMub3V0IikpOw0NCiAgICBTdHJpbmcgYTsNDQogICAgZGljdCA9IG5ldyBT
dHJpbmdbMTAwMF07DQ0KICAgIGRvbmUgPSBuZXcgU3RyaW5nWzEwMDBdOw0N
CiAgICBhID0gYmluLnJlYWRMaW5lKCk7DQ0KICAgIGludCBjb3VudD0wOw0N
CiAgICBpbnQgZG9uZWNvdW50PTA7DQ0KICAgIHdoaWxlKCEoYS5lcXVhbHMo
IiMiKSkpDQ0KICAgICAgew0NCglTdHJpbmdUb2tlbml6ZXIgc3QgPSBuZXcg
U3RyaW5nVG9rZW5pemVyKGEpOw0NCgl3aGlsZShzdC5oYXNNb3JlVG9rZW5z
KCkpDQ0KCSAgew0NCgkgICAgZGljdFtjb3VudF0gPSBzdC5uZXh0VG9rZW4o
KTsNDQoJICAgIGNvdW50Kys7DQ0KCSAgfQ0NCglhID0gYmluLnJlYWRMaW5l
KCk7DQ0KICAgICAgfQ0NCiAgICBib29sZWFuIGZsYWcgPSBmYWxzZTsNDQog
ICAgZm9yKGludCBpPTA7aTxjb3VudDtpKyspDQ0KICAgICAgew0NCglmbGFn
ID0gZmFsc2U7DQ0KCWZvcihpbnQgaj0wO2o8Y291bnQ7aisrKQ0NCgkgIHsN
DQoJICAgIGlmKGkhPWopDQ0KCSAgICAgIGlmKGlzYW5hZ3JhbShkaWN0W2ld
LCBkaWN0W2pdKSkNDQoJCXsNDQoJCSAgZmxhZyA9IHRydWU7DQ0KCQkgIGJy
ZWFrOw0NCgkJfQ0NCgkgIH0NDQoJaWYoZmxhZz09ZmFsc2UpDQ0KCSAgew0N
CgkgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oZGljdFtpXSk7DQ0KCSAgICBk
b25lW2RvbmVjb3VudF0gPSBkaWN0W2ldOw0NCgkgICAgZG9uZWNvdW50Kys7
DQ0KCSAgfQ0NCiAgICAgIH0NDQogICAgU3RyaW5nIGRvbmUyW10gPSBuZXcg
U3RyaW5nW2RvbmVjb3VudF07DQ0KICAgIGZvcihpbnQgaT0wO2k8ZG9uZWNv
dW50O2krKykNDQogICAgICB7DQ0KCWRvbmUyW2ldID0gZG9uZVtpXTsNDQog
ICAgICB9DQ0KICAgIEFycmF5cy5zb3J0KGRvbmUyKTsNDQogICAgZm9yKGlu
dCBpPTA7aTxkb25lY291bnQ7aSsrKQ0NCiAgICAgIHsNDQoJb3V0LnByaW50
bG4oZG9uZTJbaV0pOw0NCiAgICAgIH0NDQogICAgb3V0LmNsb3NlKCk7DQ0K
ICAgIGJpbi5jbG9zZSgpOw0NCiAgfQ0NCiAgcHVibGljIHN0YXRpYyBib29s
ZWFuIGlzYW5hZ3JhbShTdHJpbmcgYSwgU3RyaW5nIGIpDQ0KICB7DQ0KICAg
IGNoYXIgdDsNDQogICAgYSA9IGEudG9Mb3dlckNhc2UoKS50cmltKCk7DQ0K
ICAgIGIgPSBiLnRvTG93ZXJDYXNlKCkudHJpbSgpOw0NCiAgICBpZihhLmxl
bmd0aCgpIT1iLmxlbmd0aCgpKQ0NCiAgICAgIHJldHVybiBmYWxzZTsNDQog
ICAgZm9yKGludCBpPTA7aTxhLmxlbmd0aCgpLTE7aSsrKQ0NCiAgICAgIGZv
cihpbnQgaj1pKzE7ajxhLmxlbmd0aCgpO2orKykNDQoJaWYoYS5jaGFyQXQo
aSk8YS5jaGFyQXQoaikpDQ0KCSAgew0NCgkgICAgdCA9IGEuY2hhckF0KGkp
Ow0NCgkgICAgYSA9IGEuc3Vic3RyaW5nKDAsaSkgKyBTdHJpbmcudmFsdWVP
ZihhLmNoYXJBdChqKSkgKyBhLnN1YnN0cmluZyhpKzEpOw0NCgkgICAgLy9T
eXN0ZW0ub3V0LnByaW50bG4oYSk7DQ0KCSAgICBhID0gYS5zdWJzdHJpbmco
MCxqKSArIFN0cmluZy52YWx1ZU9mKHQpICsgYS5zdWJzdHJpbmcoaisxKTsN
DQoJICAgIC8vU3lzdGVtLm91dC5wcmludGxuKGEpOw0NCgkgIH0NDQogICAg
Ly9TeXN0ZW0ub3V0LnByaW50bG4oYSk7DQ0KICAgIGZvcihpbnQgaT0wO2k8
Yi5sZW5ndGgoKS0xO2krKykNDQogICAgICBmb3IoaW50IGo9aSsxO2o8Yi5s
ZW5ndGgoKTtqKyspDQ0KCWlmKGIuY2hhckF0KGkpPGIuY2hhckF0KGopKQ0N
CgkgIHsNDQoJICAgIHQgPSBiLmNoYXJBdChpKTsNDQoJICAgIGIgPSBiLnN1
YnN0cmluZygwLGkpICsgU3RyaW5nLnZhbHVlT2YoYi5jaGFyQXQoaikpICsg
Yi5zdWJzdHJpbmcoaSsxKTsNDQoJICAgIGIgPSBiLnN1YnN0cmluZygwLGop
ICsgU3RyaW5nLnZhbHVlT2YodCkgKyBiLnN1YnN0cmluZyhqKzEpOw0NCgkg
IH0NDQogICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oYik7DQ0KICAgIGlmKGEu
ZXF1YWxzKGIpKQ0NCiAgICAgIHJldHVybiB0cnVlOw0NCiAgICByZXR1cm4g
ZmFsc2U7DQ0KICB9DQ0KfQ0NCg0NCg==
---559023410-1804928587-980102380=:15683--

From judge@east.isx.com Sun Jan 21 13:50:19 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id NAA03322
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:50:18 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA26120
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:40:37 -0500 (EST)
Received: from localhost (lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA15580
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:40:36 -0500 (EST)
Date: Sun, 21 Jan 2001 13:40:34 -0500 (EST)
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: tangles solution
Message-ID: <Pine.GSU.4.21.0101211340150.15543-200000@lennon.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="1915983931-1507652376-980102434=:15543"
Content-Length: 4041

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--1915983931-1507652376-980102434=:15543
Content-Type: TEXT/PLAIN; charset=US-ASCII


--1915983931-1507652376-980102434=:15543
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tangles.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSU.4.21.0101211340340.15543@lennon.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="tangles.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIHRhbmdsZXMNDQp7DQ0KIHB1YmxpYyBzdGF0aWMgdm9p
ZCBtYWluKFN0cmluZyBhcmd2W10pIHRocm93cyBFeGNlcHRpb24NDQogew0N
CiAgQnVmZmVyZWRSZWFkZXIgaW49bmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBG
aWxlUmVhZGVyKCJ0YW5nbGVzLmluIikpOw0NCiAgUHJpbnRXcml0ZXIgb3V0
PW5ldyBQcmludFdyaXRlcihuZXcgRmlsZVdyaXRlcigidGFuZ2xlcy5vdXQi
KSk7DQ0KICBTdHJpbmcgcz1pbi5yZWFkTGluZSgpOw0NCiAgVmVjdG9yIHY9
bmV3IFZlY3RvcigpOw0NCiAgd2hpbGUoIXMudHJpbSgpLmVxdWFscygiMDAw
MDAwIikpDQ0KICB7DQ0KICAgdi5hZGRFbGVtZW50KHMpOw0NCiAgIHM9aW4u
cmVhZExpbmUoKTsNDQogIH0NDQogIFN0cmluZ1tdIGNvZGVzPW5ldyBTdHJp
bmdbdi5zaXplKCldOw0NCiAgU3RyaW5nW10gdG93bnM9bmV3IFN0cmluZ1t2
LnNpemUoKV07DQ0KICBpbnRbXSBjb3N0cz1uZXcgaW50W3Yuc2l6ZSgpXTsN
DQogIGZvcihpbnQgaT0wO2k8di5zaXplKCk7aSsrKQ0NCiAgew0NCiAgIFN0
cmluZyB6PXYuZWxlbWVudEF0KGkpLnRvU3RyaW5nKCk7DQ0KICAgY29kZXNb
aV09ei5zdWJzdHJpbmcoMCx6LmluZGV4T2YoIiAiKSk7DQ0KICAgdG93bnNb
aV09ei5zdWJzdHJpbmcoei5pbmRleE9mKCIgIikrMSx6LmluZGV4T2YoIiQi
KSk7DQ0KICAgY29zdHNbaV09SW50ZWdlci5wYXJzZUludCh6LnN1YnN0cmlu
Zyh6LmluZGV4T2YoIiQiKSsxKS50cmltKCkpOw0NCiAgfQ0NCg0NCiAgcz1p
bi5yZWFkTGluZSgpOw0NCiAgd2hpbGUoIXMudHJpbSgpLmVxdWFscygiIyIp
KQ0NCiAgew0NCiAgIFN0cmluZ1Rva2VuaXplciBzdD1uZXcgU3RyaW5nVG9r
ZW5pemVyKHMpOw0NCiAgIFN0cmluZyBjYWxsPXN0Lm5leHRUb2tlbigpOw0N
CiAgIGludCBkdXJhdGlvbj1JbnRlZ2VyLnBhcnNlSW50KHN0Lm5leHRUb2tl
bigpKTsNDQoNDQogICBpbnQgaW5kZXg9LTE7DQ0KICAgZm9yKGludCBpPTA7
aTx2LnNpemUoKTtpKyspDQ0KICAgew0NCiAgICBpZihjYWxsLnN0YXJ0c1dp
dGgoY29kZXNbaV0pKQ0NCiAgICAgaWYoKGNvZGVzW2ldLnN0YXJ0c1dpdGgo
IjAwIikgJiYgY2FsbC5sZW5ndGgoKT49Y29kZXNbaV0ubGVuZ3RoKCkrNCAm
JiBjYWxsLmxlbmd0aCgpPD1jb2Rlc1tpXS5sZW5ndGgoKSsxMCkgfHwNDQog
ICAgICAgICghY29kZXNbaV0uc3RhcnRzV2l0aCgiMDAiKSAmJiBjYWxsLmxl
bmd0aCgpPj1jb2Rlc1tpXS5sZW5ndGgoKSs0ICYmIGNhbGwubGVuZ3RoKCk8
PWNvZGVzW2ldLmxlbmd0aCgpKzcpKQ0NCiAgICAgIGluZGV4PWk7DQ0KICAg
fQ0NCiAgIFN0cmluZyB0b3duPSJVbmtub3duIjsNDQogICBpbnQgY29zdD0t
MTsNDQogICBpZihpbmRleD49MCkNDQogICB7DQ0KICAgIHRvd249dG93bnNb
aW5kZXhdOw0NCiAgICBjb3N0PWNvc3RzW2luZGV4XTsNDQogICB9DQ0KICAg
aWYoIWNhbGwuc3RhcnRzV2l0aCgiMCIpKQ0NCiAgIHsNDQogICAgdG93bj0i
TG9jYWwiOw0NCiAgICBjb3N0PTA7DQ0KICAgfQ0NCg0NCiAgIFN0cmluZyBw
cmludD1jYWxsOw0NCiAgIHdoaWxlKHByaW50Lmxlbmd0aCgpPDE2KQ0NCiAg
ICBwcmludD1wcmludCsiICI7DQ0KICAgcHJpbnQrPXRvd247DQ0KICAgaWYo
aW5kZXg+PTApDQ0KICAgIGNhbGw9Y2FsbC5zdWJzdHJpbmcoY29kZXNbaW5k
ZXhdLmxlbmd0aCgpKTsNDQogICBpZihjb3N0PT0tMSkNDQogICAgY2FsbD0i
ICI7DQ0KICAgd2hpbGUocHJpbnQubGVuZ3RoKCkrY2FsbC5sZW5ndGgoKTw1
MSkNDQogICAgcHJpbnQ9cHJpbnQrIiAiOw0NCiAgIHByaW50Kz1jYWxsOw0N
CiAgIFN0cmluZyBkdXI9IiIrZHVyYXRpb247DQ0KICAgd2hpbGUocHJpbnQu
bGVuZ3RoKCkrZHVyLmxlbmd0aCgpPDU2KQ0NCiAgICBwcmludD1wcmludCsi
ICI7DQ0KICAgcHJpbnQrPWR1cjsNDQogICBTdHJpbmcgej0iIjsNDQogICBp
Zihjb3N0Pj0wKQ0NCiAgIHsNDQogICAgaW50IHdob2xlPWNvc3QvMTAwOw0N
CiAgICBpbnQgcGFydD1jb3N0JTEwMDsNDQogICAgej13aG9sZSsiLiI7DQ0K
ICAgIGlmKHBhcnQ8MTApIHorPSIwIjsNDQogICAgeis9IiIrcGFydDsNDQog
ICB9DQ0KICAgd2hpbGUocHJpbnQubGVuZ3RoKCkrei5sZW5ndGgoKTw2MikN
DQogICAgcHJpbnQrPSIgIjsNDQogICBwcmludCs9ejsNDQogICBjb3N0PWNv
c3QqZHVyYXRpb247DQ0KICAgaWYoY29zdDwwKSBjb3N0PS0xMDA7DQ0KICAg
IGludCB3aG9sZT1jb3N0LzEwMDsNDQogICAgaW50IHBhcnQ9Y29zdCUxMDA7
DQ0KICAgIHo9d2hvbGUrIi4iOw0NCiAgICBpZihwYXJ0PDEwKSB6Kz0iMCI7
DQ0KICAgIHorPSIiK3BhcnQ7DQ0KICAgd2hpbGUocHJpbnQubGVuZ3RoKCkr
ei5sZW5ndGgoKTw2OSkNDQogICAgcHJpbnQrPSIgIjsNDQogICBwcmludCs9
ejsNDQogICBvdXQucHJpbnRsbihwcmludCk7DQ0KDQ0KICAgcz1pbi5yZWFk
TGluZSgpOw0NCiAgfQ0NCiAgb3V0LmNsb3NlKCk7DQ0KIH0NDQp9
--1915983931-1507652376-980102434=:15543--

From judge@east.isx.com Sun Jan 21 14:02:55 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA03698
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:02:54 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id NAA26435
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:53:13 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id NAA14618
	for <judge@east.isx.com>; Sun, 21 Jan 2001 13:53:12 -0500 (EST)
Date: Sun, 21 Jan 2001 13:53:12 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: Submit Tangles (A)
Message-ID: <Pine.SOL.4.21.0101211352330.12125-200000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1804928587-980103192=:12125"
Content-Length: 4628

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1804928587-980103192=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII



					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)

---559023410-1804928587-980103192=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tangles.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211353120.12125@oscar.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="tangles.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIHRhbmdsZXMgew0NCg0NCglzdGF0aWMgUHJvcGVydGll
cyBwcm9wczsNDQoJc3RhdGljIFByaW50U3RyZWFtIG91dDsNDQoJc3RhdGlj
IFN0cmluZyBbXSBjb2RlczsNDQoNDQoJcHVibGljIHN0YXRpYyB2b2lkIG1h
aW4gKFN0cmluZyBbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gew0NCgkJ
U3RyaW5nIHM7DQ0KCQlCdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJl
ZFJlYWRlciAobmV3IEZpbGVSZWFkZXIgKCJ0YW5nbGVzLmluIikpOw0NCgkJ
b3V0ID0gbmV3IFByaW50U3RyZWFtIChuZXcgQnVmZmVyZWRPdXRwdXRTdHJl
YW0gKG5ldyBGaWxlT3V0cHV0U3RyZWFtICgidGFuZ2xlcy5vdXQiKSkpOw0N
CgkJcHJvcHMgPSBuZXcgUHJvcGVydGllcyAoKTsNDQoJCXdoaWxlICgocyA9
IGluLnJlYWRMaW5lICgpKSAhPSBudWxsICYmICEocy5lcXVhbHMgKCIwMDAw
MDAiKSkpIHsNDQoJCQlpbnQgaW5kZXggPSBzLmluZGV4T2YgKCIgIik7DQ0K
CQkJcHJvcHMucHV0IChzLnN1YnN0cmluZyAoMCwgaW5kZXgpLCBzLnN1YnN0
cmluZyAoaW5kZXggKyAxKSk7DQ0KCQl9DQ0KCQlPYmplY3QgW10gZHVtYiA9
IHByb3BzLmtleVNldCAoKS50b0FycmF5ICgpOw0NCgkJY29kZXMgPSBuZXcg
U3RyaW5nIFtkdW1iLmxlbmd0aF07DQ0KCQlmb3IgKGludCBpID0gMDsgaSA8
IGR1bWIubGVuZ3RoOyBpKyspDQ0KCQkJY29kZXMgW2ldID0gKFN0cmluZykg
ZHVtYiBbaV07DQ0KCQl3aGlsZSAoKHMgPSBpbi5yZWFkTGluZSAoKSkgIT0g
bnVsbCAmJiAhKHMuZXF1YWxzICgiIyIpKSkgew0NCgkJCVN0cmluZyBjb2Rl
ID0gcy5zdWJzdHJpbmcgKDAsIHMuaW5kZXhPZiAoIiAiKSk7DQ0KCQkJU3Ry
aW5nIG51bWJlciA9IHMuc3Vic3RyaW5nIChzLmxhc3RJbmRleE9mICgiICIp
ICsgMSk7DQ0KCQkJaGF2ZUZ1bldpdGggKGNvZGUsIG51bWJlcik7DQ0KCQl9
DQ0KCQlpbi5jbG9zZSAoKTsNDQoJCW91dC5jbG9zZSAoKTsNDQoJfQkNDQoN
DQoJc3RhdGljIHZvaWQgaGF2ZUZ1bldpdGggKFN0cmluZyBjb2RlLCBTdHJp
bmcgbnVtYmVyKSB7DQ0KCQlpZiAoIWNvZGUuc3RhcnRzV2l0aCAoIjAiKSkg
ew0NCgkJCW91dC5wcmludCAoY29kZSk7DQ0KCQkJZmlsbFNwYWNlcyAoMTYg
LSBjb2RlLmxlbmd0aCAoKSk7DQ0KCQkJb3V0LnByaW50ICgiTG9jYWwiKTsN
DQoJCQlmaWxsU3BhY2VzICgyOSAtIGNvZGUubGVuZ3RoICgpKTsNDQoJCQlv
dXQucHJpbnQgKGNvZGUpOw0NCgkJCWZpbGxTcGFjZXMgKDUgLSBudW1iZXIu
bGVuZ3RoICgpKTsNDQoJCQlvdXQucHJpbnQgKG51bWJlcik7DQ0KCQkJb3V0
LnByaW50bG4gKCIgIDAuMDAgICAwLjAwIik7DQ0KCQl9DQ0KCQllbHNlIHsN
DQoJCQlmb3IgKGludCBpID0gMDsgaSA8IGNvZGVzLmxlbmd0aDsgaSsrKSB7
DQ0KCQkJCWlmIChjb2RlLnN0YXJ0c1dpdGggKGNvZGVzIFtpXSkpIHsNDQoJ
CQkJCW91dC5wcmludCAoY29kZSk7DQ0KCQkJCQlmaWxsU3BhY2VzICgxNiAt
IGNvZGUubGVuZ3RoICgpKTsNDQoJCQkJCVN0cmluZyBmb28gPSBwcm9wcy5n
ZXRQcm9wZXJ0eSAoY29kZXMgW2ldKTsNDQoJCQkJCWludCBpbmRleCA9IGZv
by5pbmRleE9mICgiJCIpOw0NCgkJCQkJb3V0LnByaW50IChmb28uc3Vic3Ry
aW5nICgwLCBpbmRleCkpOw0NCgkJCQkJZmlsbFNwYWNlcyAoMzQgLSBpbmRl
eCAtIChjb2RlLmxlbmd0aCAoKSAtIGNvZGVzIFtpXS5sZW5ndGggKCkpKTsN
DQoJCQkJCW91dC5wcmludCAoY29kZS5zdWJzdHJpbmcgKGNvZGVzIFtpXS5s
ZW5ndGggKCkpKTsNDQoJCQkJCWZpbGxTcGFjZXMgKDUgLSBudW1iZXIubGVu
Z3RoICgpKTsNDQoJCQkJCW91dC5wcmludCAobnVtYmVyKTsNDQoJCQkJCVN0
cmluZyBjb3N0ID0gZm9vLnN1YnN0cmluZyAoaW5kZXggKyAxKTsNDQoJCQkJ
CWludCB0b3RhbCA9IEludGVnZXIucGFyc2VJbnQgKG51bWJlcikgKg0NCgkJ
CQkJCQlJbnRlZ2VyLnBhcnNlSW50IChjb3N0KTsNDQoJCQkJCXdoaWxlIChj
b3N0Lmxlbmd0aCAoKSA8IDMpDQ0KCQkJCQkJY29zdCA9ICIwIiArIGNvc3Q7
DQ0KCQkJCQljb3N0ID0gY29zdC5zdWJzdHJpbmcgKDAsIGNvc3QubGVuZ3Ro
ICgpIC0gMikgKyAiLiIgKw0NCgkJCQkJCQljb3N0LnN1YnN0cmluZyAoY29z
dC5sZW5ndGggKCkgLSAyKTsNDQoJCQkJCWZpbGxTcGFjZXMgKDYgLSBjb3N0
Lmxlbmd0aCAoKSk7DQ0KCQkJCQlvdXQucHJpbnQgKGNvc3QpOw0NCgkJCQkJ
U3RyaW5nIGJhZ29vb20gPSAiIiArIHRvdGFsOw0NCgkJCQkJd2hpbGUgKGJh
Z29vb20ubGVuZ3RoICgpIDwgMykNDQoJCQkJCQliYWdvb29tPSAiMCIgKyBi
YWdvb29tOw0NCgkJCQkJYmFnb29vbSA9IGJhZ29vb20uc3Vic3RyaW5nICgw
LCBiYWdvb29tLmxlbmd0aCAoKSAtIDIpICsgIi4iICsNDQoJCQkJCQkJYmFn
b29vbS5zdWJzdHJpbmcgKGJhZ29vb20ubGVuZ3RoICgpIC0gMik7DQ0KCQkJ
CQlmaWxsU3BhY2VzICg3IC0gYmFnb29vbS5sZW5ndGggKCkpOw0NCgkJCQkJ
b3V0LnByaW50bG4gKGJhZ29vb20pOw0NCgkJCQkJcmV0dXJuOw0NCgkJCQl9
DQ0KCQkJfQ0NCgkJCW91dC5wcmludCAoY29kZSk7DQ0KCQkJZmlsbFNwYWNl
cyAoMTYgLSBjb2RlLmxlbmd0aCAoKSk7DQ0KCQkJb3V0LnByaW50ICgiVW5r
bm93biIpOw0NCgkJCWZpbGxTcGFjZXMgKDMyIC0gbnVtYmVyLmxlbmd0aCAo
KSk7DQ0KCQkJb3V0LnByaW50IChudW1iZXIpOw0NCgkJCWZpbGxTcGFjZXMg
KDgpOw0NCgkJCW91dC5wcmludGxuICgiLTEuMDAiKTsNDQoJCX0NDQoJfQ0N
Cg0NCglzdGF0aWMgdm9pZCBmaWxsU3BhY2VzIChpbnQgaG93X21hbnkpIHsN
DQoJCWZvciAoaW50IGkgPSAwOyBpIDwgaG93X21hbnk7IGkrKykNDQoJCQlv
dXQucHJpbnQgKCIgIik7DQ0KCX0NDQoNDQp9
---559023410-1804928587-980103192=:12125--

From judge@east.isx.com Sun Jan 21 14:14:34 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA04158
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:14:33 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id OAA26769
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:04:53 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id OAA15001
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:04:51 -0500 (EST)
Date: Sun, 21 Jan 2001 14:04:51 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: submit tangles
Message-ID: <Pine.SOL.4.21.0101211404160.12125-200000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-959030623-980103891=:12125"
Content-Length: 4625

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-959030623-980103891=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII



					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)

---559023410-959030623-980103891=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="tangles.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211404510.12125@oscar.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="tangles.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIHRhbmdsZXMgew0NCg0NCglzdGF0aWMgUHJvcGVydGll
cyBwcm9wczsNDQoJc3RhdGljIFByaW50U3RyZWFtIG91dDsNDQoJc3RhdGlj
IFN0cmluZyBbXSBjb2RlczsNDQoNDQoJcHVibGljIHN0YXRpYyB2b2lkIG1h
aW4gKFN0cmluZyBbXSBhcmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gew0NCgkJ
U3RyaW5nIHM7DQ0KCQlCdWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJl
ZFJlYWRlciAobmV3IEZpbGVSZWFkZXIgKCJ0YW5nbGVzLmluIikpOw0NCgkJ
b3V0ID0gbmV3IFByaW50U3RyZWFtIChuZXcgQnVmZmVyZWRPdXRwdXRTdHJl
YW0gKG5ldyBGaWxlT3V0cHV0U3RyZWFtICgidGFuZ2xlcy5vdXQiKSkpOw0N
CgkJcHJvcHMgPSBuZXcgUHJvcGVydGllcyAoKTsNDQoJCXdoaWxlICgocyA9
IGluLnJlYWRMaW5lICgpKSAhPSBudWxsICYmICEocy5lcXVhbHMgKCIwMDAw
MDAiKSkpIHsNDQoJCQlpbnQgaW5kZXggPSBzLmluZGV4T2YgKCIgIik7DQ0K
CQkJcHJvcHMucHV0IChzLnN1YnN0cmluZyAoMCwgaW5kZXgpLCBzLnN1YnN0
cmluZyAoaW5kZXggKyAxKSk7DQ0KCQl9DQ0KCQlPYmplY3QgW10gZHVtYiA9
IHByb3BzLmtleVNldCAoKS50b0FycmF5ICgpOw0NCgkJY29kZXMgPSBuZXcg
U3RyaW5nIFtkdW1iLmxlbmd0aF07DQ0KCQlmb3IgKGludCBpID0gMDsgaSA8
IGR1bWIubGVuZ3RoOyBpKyspDQ0KCQkJY29kZXMgW2ldID0gKFN0cmluZykg
ZHVtYiBbaV07DQ0KCQl3aGlsZSAoKHMgPSBpbi5yZWFkTGluZSAoKSkgIT0g
bnVsbCAmJiAhKHMuZXF1YWxzICgiIyIpKSkgew0NCgkJCVN0cmluZyBjb2Rl
ID0gcy5zdWJzdHJpbmcgKDAsIHMuaW5kZXhPZiAoIiAiKSk7DQ0KCQkJU3Ry
aW5nIG51bWJlciA9IHMuc3Vic3RyaW5nIChzLmxhc3RJbmRleE9mICgiICIp
ICsgMSk7DQ0KCQkJaGF2ZUZ1bldpdGggKGNvZGUsIG51bWJlcik7DQ0KCQl9
DQ0KCQlpbi5jbG9zZSAoKTsNDQoJCW91dC5jbG9zZSAoKTsNDQoJfQkNDQoN
DQoJc3RhdGljIHZvaWQgaGF2ZUZ1bldpdGggKFN0cmluZyBjb2RlLCBTdHJp
bmcgbnVtYmVyKSB7DQ0KCQlpZiAoIWNvZGUuc3RhcnRzV2l0aCAoIjAiKSkg
ew0NCgkJCW91dC5wcmludCAoY29kZSk7DQ0KCQkJZmlsbFNwYWNlcyAoMTYg
LSBjb2RlLmxlbmd0aCAoKSk7DQ0KCQkJb3V0LnByaW50ICgiTG9jYWwiKTsN
DQoJCQlmaWxsU3BhY2VzICgzMCAtIGNvZGUubGVuZ3RoICgpKTsNDQoJCQlv
dXQucHJpbnQgKGNvZGUpOw0NCgkJCWZpbGxTcGFjZXMgKDUgLSBudW1iZXIu
bGVuZ3RoICgpKTsNDQoJCQlvdXQucHJpbnQgKG51bWJlcik7DQ0KCQkJb3V0
LnByaW50bG4gKCIgIDAuMDAgICAwLjAwIik7DQ0KCQl9DQ0KCQllbHNlIHsN
DQoJCQlmb3IgKGludCBpID0gMDsgaSA8IGNvZGVzLmxlbmd0aDsgaSsrKSB7
DQ0KCQkJCWlmIChjb2RlLnN0YXJ0c1dpdGggKGNvZGVzIFtpXSkpIHsNDQoJ
CQkJCW91dC5wcmludCAoY29kZSk7DQ0KCQkJCQlmaWxsU3BhY2VzICgxNiAt
IGNvZGUubGVuZ3RoICgpKTsNDQoJCQkJCVN0cmluZyBmb28gPSBwcm9wcy5n
ZXRQcm9wZXJ0eSAoY29kZXMgW2ldKTsNDQoJCQkJCWludCBpbmRleCA9IGZv
by5pbmRleE9mICgiJCIpOw0NCgkJCQkJb3V0LnByaW50IChmb28uc3Vic3Ry
aW5nICgwLCBpbmRleCkpOw0NCgkJCQkJZmlsbFNwYWNlcyAoMzUgLSBpbmRl
eCAtIChjb2RlLmxlbmd0aCAoKSAtIGNvZGVzIFtpXS5sZW5ndGggKCkpKTsN
DQoJCQkJCW91dC5wcmludCAoY29kZS5zdWJzdHJpbmcgKGNvZGVzIFtpXS5s
ZW5ndGggKCkpKTsNDQoJCQkJCWZpbGxTcGFjZXMgKDUgLSBudW1iZXIubGVu
Z3RoICgpKTsNDQoJCQkJCW91dC5wcmludCAobnVtYmVyKTsNDQoJCQkJCVN0
cmluZyBjb3N0ID0gZm9vLnN1YnN0cmluZyAoaW5kZXggKyAxKTsNDQoJCQkJ
CWludCB0b3RhbCA9IEludGVnZXIucGFyc2VJbnQgKG51bWJlcikgKg0NCgkJ
CQkJCQlJbnRlZ2VyLnBhcnNlSW50IChjb3N0KTsNDQoJCQkJCXdoaWxlIChj
b3N0Lmxlbmd0aCAoKSA8IDMpDQ0KCQkJCQkJY29zdCA9ICIwIiArIGNvc3Q7
DQ0KCQkJCQljb3N0ID0gY29zdC5zdWJzdHJpbmcgKDAsIGNvc3QubGVuZ3Ro
ICgpIC0gMikgKyAiLiIgKw0NCgkJCQkJCQljb3N0LnN1YnN0cmluZyAoY29z
dC5sZW5ndGggKCkgLSAyKTsNDQoJCQkJCWZpbGxTcGFjZXMgKDYgLSBjb3N0
Lmxlbmd0aCAoKSk7DQ0KCQkJCQlvdXQucHJpbnQgKGNvc3QpOw0NCgkJCQkJ
U3RyaW5nIGJhZ29vb20gPSAiIiArIHRvdGFsOw0NCgkJCQkJd2hpbGUgKGJh
Z29vb20ubGVuZ3RoICgpIDwgMykNDQoJCQkJCQliYWdvb29tPSAiMCIgKyBi
YWdvb29tOw0NCgkJCQkJYmFnb29vbSA9IGJhZ29vb20uc3Vic3RyaW5nICgw
LCBiYWdvb29tLmxlbmd0aCAoKSAtIDIpICsgIi4iICsNDQoJCQkJCQkJYmFn
b29vbS5zdWJzdHJpbmcgKGJhZ29vb20ubGVuZ3RoICgpIC0gMik7DQ0KCQkJ
CQlmaWxsU3BhY2VzICg3IC0gYmFnb29vbS5sZW5ndGggKCkpOw0NCgkJCQkJ
b3V0LnByaW50bG4gKGJhZ29vb20pOw0NCgkJCQkJcmV0dXJuOw0NCgkJCQl9
DQ0KCQkJfQ0NCgkJCW91dC5wcmludCAoY29kZSk7DQ0KCQkJZmlsbFNwYWNl
cyAoMTYgLSBjb2RlLmxlbmd0aCAoKSk7DQ0KCQkJb3V0LnByaW50ICgiVW5r
bm93biIpOw0NCgkJCWZpbGxTcGFjZXMgKDMzIC0gbnVtYmVyLmxlbmd0aCAo
KSk7DQ0KCQkJb3V0LnByaW50IChudW1iZXIpOw0NCgkJCWZpbGxTcGFjZXMg
KDgpOw0NCgkJCW91dC5wcmludGxuICgiLTEuMDAiKTsNDQoJCX0NDQoJfQ0N
Cg0NCglzdGF0aWMgdm9pZCBmaWxsU3BhY2VzIChpbnQgaG93X21hbnkpIHsN
DQoJCWZvciAoaW50IGkgPSAwOyBpIDwgaG93X21hbnk7IGkrKykNDQoJCQlv
dXQucHJpbnQgKCIgIik7DQ0KCX0NDQoNDQp9
---559023410-959030623-980103891=:12125--

From judge@east.isx.com Sun Jan 21 14:26:36 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA04470
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:26:35 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id OAA27135
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:16:55 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id OAA15413
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:16:54 -0500 (EST)
Date: Sun, 21 Jan 2001 14:16:54 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: submit ananagrams
Message-ID: <Pine.SOL.4.21.0101211416220.12125-200000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1903590565-980104614=:12125"
Content-Length: 2528

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1903590565-980104614=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII



					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)

---559023410-1903590565-980104614=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ananagrams.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211416540.12125@oscar.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="ananagrams.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIGFuYW5hZ3JhbXMgew0NCg0NCglzdGF0aWMgUHJpbnRT
dHJlYW0gb3V0Ow0NCglzdGF0aWMgSGFzaHRhYmxlIHByb3BzOw0NCg0NCg0N
CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nIFtdIGFyZ3MpIHRo
cm93cyBJT0V4Y2VwdGlvbiB7DQ0KCQlTdHJpbmcgczsNDQoJCUJ1ZmZlcmVk
UmVhZGVyIGluID0gbmV3IEJ1ZmZlcmVkUmVhZGVyIChuZXcgRmlsZVJlYWRl
ciAoImFuYW5hZ3JhbXMuaW4iKSk7DQ0KCQlvdXQgPSBuZXcgUHJpbnRTdHJl
YW0gKG5ldyBCdWZmZXJlZE91dHB1dFN0cmVhbSAobmV3IEZpbGVPdXRwdXRT
dHJlYW0gKCJhbmFuYWdyYW1zLm91dCIpKSk7DQ0KCQlwcm9wcyA9IG5ldyBI
YXNodGFibGUgKCk7DQ0KCQlTdHJpbmdUb2tlbml6ZXIgdG9rZTsNDQoJCXdo
aWxlICgocyA9IGluLnJlYWRMaW5lICgpKSAhPSBudWxsICYmICFzLmVxdWFs
cyAoIiMiKSkgew0NCgkJCXRva2UgPSBuZXcgU3RyaW5nVG9rZW5pemVyIChz
KTsNDQoJCQl3aGlsZSAodG9rZS5oYXNNb3JlVG9rZW5zICgpKSB7DQ0KCQkJ
CXMgPSB0b2tlLm5leHRUb2tlbiAoKTsNDQoJCQkJY2hhciBbXSBmb28gPSBz
LnRvTG93ZXJDYXNlICgpLnRvQ2hhckFycmF5ICgpOw0NCgkJCQlBcnJheXMu
c29ydCAoZm9vKTsNDQoJCQkJTGlua2VkTGlzdCB2YWx1ZXMgPSAoTGlua2Vk
TGlzdCkgcHJvcHMuZ2V0IChuZXcgU3RyaW5nIChmb28pKTsNDQoJCQkJaWYg
KHZhbHVlcyA9PSBudWxsKSB7DQ0KCQkJCQl2YWx1ZXMgPSBuZXcgTGlua2Vk
TGlzdCAoKTsNDQoJCQkJCXByb3BzLnB1dCAobmV3IFN0cmluZyAoZm9vKSwg
dmFsdWVzKTsNDQoJCQkJfQ0NCgkJCQl2YWx1ZXMuYWRkIChzKTsNDQoJCQl9
DQ0KCQkJDQ0KCQl9DQ0KCQlPYmplY3QgW10ga2V5cyA9IHByb3BzLmtleVNl
dCAoKS50b0FycmF5ICgpOw0NCgkJTGlua2VkTGlzdCBhbnN3ZXJzID0gbmV3
IExpbmtlZExpc3QgKCk7DQ0KCQlmb3IgKGludCBpID0gMDsgaSA8IGtleXMu
bGVuZ3RoOyBpKyspIHsNDQoJCQlMaW5rZWRMaXN0IHRlbXAgPSAoTGlua2Vk
TGlzdCkgcHJvcHMuZ2V0IChrZXlzIFtpXSk7DQ0KCQkJaWYgKHRlbXAuc2l6
ZSAoKSA9PSAxKQ0NCgkJCQlhbnN3ZXJzLmFkZCAodGVtcC5nZXQgKDApKTsN
DQoJCX0NDQoJCWtleXMgPSBhbnN3ZXJzLnRvQXJyYXkgKCk7DQ0KCQlBcnJh
eXMuc29ydCAoa2V5cyk7DQ0KCQlmb3IgKGludCBpID0gMDsgaSA8IGtleXMu
bGVuZ3RoOyBpKyspDQ0KCQkJb3V0LnByaW50bG4gKGtleXMgW2ldKTsNDQoJ
CWluLmNsb3NlICgpOw0NCgkJb3V0LmNsb3NlICgpOw0NCgl9DQ0KDQ0KfQ0N
Cg==
---559023410-1903590565-980104614=:12125--

From judge@east.isx.com Sun Jan 21 14:36:07 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA04749
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:36:06 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id OAA27349
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:26:26 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id OAA15733
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:26:24 -0500 (EST)
Date: Sun, 21 Jan 2001 14:26:24 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: question on keywords
Message-ID: <Pine.SOL.4.21.0101211423480.12125-100000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Content-Length: 291

is the output on each line correct?

the problem says to output the number of the profile followed by a
":" followed by the text numbers separated by commas without spaces
inbetween.  however, the output contains spaces after each ":".

					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)


From judge@east.isx.com Sun Jan 21 14:40:50 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA04989
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:40:49 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id OAA27492
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:31:09 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id OAA16725
	for judge@east.isx.com; Sun, 21 Jan 2001 14:31:08 -0500 (EST)
Date: Sun, 21 Jan 2001 14:31:08 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: question netwars
Message-ID: <20010121143108.A16711@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 398

What happens if pascaller is trapped and lisper is about to move into a
hello and die.  Do both happen at the same time, or is trapped
recognized first.

An example

   A-B
   |
   C
   |
   D

Lisper starts in D, Paskill starts in A.
L moves to C, P to B.

Next, does P discover trapped and that's it, or does L also move to A in
the same turn and die?

-- 
-Brian McNamara (lorgon@cc.gatech.edu)

From judge@east.isx.com Sun Jan 21 14:45:21 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from angband.org (angband.cnd.gatech.edu [199.77.147.62])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA05005
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:45:20 -0500 (EST)
Received: (from dank@localhost)
	by angband.org (8.9.3/8.9.3/Debian 8.9.3-21) id OAA02191
	for judge@east.isx.com; Sun, 21 Jan 2001 14:35:40 -0500
From: nick black <dank@angband.org>
Date: Sun, 21 Jan 2001 14:35:40 -0500
To: judge@east.isx.com
Subject: tangles
Message-ID: <20010121143540.A2183@angband.org>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="pWyiEgJYm5f9v55/"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 2114


--pWyiEgJYm5f9v55/
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline


-- 
 nick black * head developer, trellis network security * www.angband.org/~dank
"who can unlearn all the facts that i've learned?  i sat in their chairs and my
synapses burned...thoughts follow my vision and dance in the sun; can this wait
'til i'm old?  can i live while i'm young?"  -phish, "chalkdust torture"

--pWyiEgJYm5f9v55/
Content-Type: text/x-csrc; charset=us-ascii
Content-Disposition: attachment; filename="tangles.c"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct loc{
	char name[26];
	float price;
	char code[7];
	struct loc *next;
}loc;

loc *getCode(FILE *fp){
	loc *temp;
	int tem;

	temp=malloc(sizeof(loc));
	fscanf(fp,"%s",temp->code);
	if(strcmp(temp->code,"000000")==0){
		free(temp);
		return NULL;
	}
	fscanf(fp," %[^$]$%d",temp->name,&tem);
	temp->price=tem/100+(float)(tem%100)/100;
	temp->next=NULL;

	printf("got code=%s,area=%s,price=%f\n",temp->code,temp->name,temp->price);

	return temp;
}

int doNumber(FILE *in,FILE *out,loc *head){
	char number[16],*suffix,*place="Local";
	unsigned minutes;
	float price=0.0;


	printf("looking for call...\n");

	if(fscanf(in,"%s %d",number,&minutes)<2){
		return 0;
	}

	printf("call to %s for %u minutes\n",number,minutes);

	fprintf(out,"%-16s",number);
	if(number[0]!='0'){
		suffix=number;
	}else{
		while(head && strncmp(head->code,number,strlen(head->code))){
			head=head->next;
		}
		if(!head){
			fprintf(out,"%-35s%5u%13.2f\n","Unknown",minutes,-1.0);
			return 1;
		}
		place=head->name;
		suffix=number+strlen(head->code);
		price=head->price;
	}
	fprintf(out,"%-25s",place);
	fprintf(out,"%10s",suffix);
	fprintf(out,"%5u",minutes);
	fprintf(out,"%6.2f",price);
	return fprintf(out,"%7.2f\n",price*minutes);
}

int main(void){
	FILE *in,*out;
	loc *head=NULL,**cur,*guy;

	in=fopen("tangles.in","r");
	cur=&head;
	while( (guy=getCode(in)) ){
		*cur=guy;
		cur=&guy->next;
	}
	out=fopen("tangles.out","w");
	while( doNumber(in,out,head) ){
	}
	fclose(in);
	fclose(out);
	return 0;
}

--pWyiEgJYm5f9v55/--

From judge@east.isx.com Sun Jan 21 14:55:55 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA05245
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:55:54 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id OAA28074
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:46:14 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id OAA17082
	for judge@east.isx.com; Sun, 21 Jan 2001 14:46:14 -0500 (EST)
Date: Sun, 21 Jan 2001 14:46:13 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: netwars sol
Message-ID: <20010121144613.A17048@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="n8g4imXOkfNTN/H1"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 3328


--n8g4imXOkfNTN/H1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

yay
g++

-- 
-Brian McNamara (lorgon@cc.gatech.edu)

--n8g4imXOkfNTN/H1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="netwars.cc"

#include <iostream>
#include <fstream>
#include <string>

istream* in;
ostream* out;

string input;
int pos;

char cur() {
   return input[pos];
}
char eat() {
   cout << cur() << flush;
   return input[pos++];
}
void ws() {
   while( cur()==' ' || cur()=='\t' || cur()=='\n' ) 
      pos++;
}


typedef enum {EMPTY,HELLO,PROLOG} Value;
Value nodes[200];
bool a[200][200];

char pcur, lcur;

char nextP() {
   char look = pcur+1;
   for(;;) {
      if( look==pcur ) return 0;
      if( a[pcur][look] ) {
         if( nodes[look] == EMPTY )
            return look;
      }
      look++;
      if( look > 'Z' ) look = 'A';
   }   
}

char nextL() {
   char look = lcur-1;
   for(;;) {
      if( look==lcur ) return 0;
      if( a[lcur][look] ) {
         if( nodes[look] == EMPTY )
            return look;
         if( nodes[look] == HELLO )
            return look;
      }
      look--;
      if( look < 'A' ) look = 'Z';
   }   
}

void make( char c, char d ) {
   a[c][d] = a[d][c] = true;
}

void read() {
cout << "reading a set" << endl;
   for(;;) {
      ws();
      if( cur()=='.' ) break;

cout << "reading a desc" << endl;
      char node = eat();
      ws();
      if( eat() != ':' ) throw string("ick")+input[pos-1];
      for(;;) {
         ws();
         if( cur()==';' || cur()=='.' ) break;
         char other = eat();
         make( node, other );
      }
      if( cur()==';' ) eat();  // semi
   }
   eat();  // dot
cout << "reading trail" << endl;
   ws();
   pcur = eat();
   ws();
   lcur = eat();
}

void doit() {
   char pnext;
   char lnext;
   try {
   for(;;) {
      nodes[pcur] = HELLO;
      nodes[lcur] = PROLOG;

      pnext = nextP();
      lnext = nextL();
      if( !pnext || !lnext ) throw 1;     // if anyone trapped
      if( pnext==lnext ) throw 2;         // annil
      if( nodes[lnext]==HELLO ) throw 3;  // lisp die

      pcur = pnext;
      lcur = lnext;
   }
   } catch( int x ) {
      if( x==2 )  {
         *out << "Both annihilated in node " << pnext;
      } else {
         if( !pnext )
            *out << "Paskill trapped in node " << pcur << " ";
         if( !lnext )
            *out << "Lisper trapped in node " << lcur << " ";
         if( nodes[lnext]==HELLO )
            *out << "Lisper destroyed in node " << lnext << " ";
cout << endl << endl << nodes[lnext] << lnext << endl;
      }
   }
   *out << endl;         
}

void go() {
   for( char i='A'; i<='Z'; i++ )
      for( char j='A'; j<='Z'; j++ )
         a[i][j] = false;
   for( char i='A'; i<='Z'; i++ )
      nodes[i] = EMPTY;

   read();
   doit();
}

int main() {
   pos = 0;
   string s;
   ifstream iii("netwars.in");
   ofstream ooo("netwars.out");
   in = &iii;
   out= &ooo;

   while( *in ) {
      getline( *in, s );
      input += s;
      input += '\n';
   }

   try{
   for(;;) {
      ws();
      if( cur() == '#' ) break;
      cout << "main, about to read" << endl;
      go();
      cout << "main, just read" << endl;
   }
   }
   catch( string s ) {
      cout << "oops: " << s << endl;
   }
      
}

--n8g4imXOkfNTN/H1--

From judge@east.isx.com Sun Jan 21 14:56:06 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from angband.org (angband.cnd.gatech.edu [199.77.147.62])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id OAA05249
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:56:05 -0500 (EST)
Received: (from dank@localhost)
	by angband.org (8.9.3/8.9.3/Debian 8.9.3-21) id OAA06551
	for judge@east.isx.com; Sun, 21 Jan 2001 14:46:27 -0500
From: nick black <dank@angband.org>
Date: Sun, 21 Jan 2001 14:46:26 -0500
To: judge@east.isx.com
Subject: calculator
Message-ID: <20010121144626.A6185@angband.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 471

all variables are initally set to 0, and only printed if explictly
changed.  if a variable is explicitly "changed" to 0, is this considered
print-worthy?

-- 
 nick black * head developer, trellis network security * www.angband.org/~dank
"who can unlearn all the facts that i've learned?  i sat in their chairs and my
synapses burned...thoughts follow my vision and dance in the sun; can this wait
'til i'm old?  can i live while i'm young?"  -phish, "chalkdust torture"

From judge@east.isx.com Sun Jan 21 15:08:30 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id PAA05580
	for <judge@east.isx.com>; Sun, 21 Jan 2001 15:08:29 -0500 (EST)
Received: from felix.cc.gatech.edu (felix.cc.gatech.edu [130.207.107.11])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id OAA28717
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:58:50 -0500 (EST)
Received: from localhost (dminn@localhost)
	by felix.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id OAA18869
	for <judge@east.isx.com>; Sun, 21 Jan 2001 14:58:49 -0500 (EST)
Date: Sun, 21 Jan 2001 14:58:49 -0500 (EST)
From: "David C. Minnen" <dminn@cc.gatech.edu>
To: judge@east.isx.com
Subject: netwars - java
Message-ID: <Pine.SOL.4.21.0101211458370.15683-200000@felix.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-684387517-980107129=:15683"
Content-Length: 5353

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-684387517-980107129=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII



 david


---559023410-684387517-980107129=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="netwars.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211458490.15683@felix.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="netwars.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIG5ldHdhcnN7DQ0KDQ0KICBzdGF0aWMgQnVmZmVyZWRS
ZWFkZXIgaW47DQ0KICBzdGF0aWMgUHJpbnRXcml0ZXIgb3V0Ow0NCiAgc3Rh
dGljIGJvb2xlYW4gbWFwW11bXSA9IG5ldyBib29sZWFuWzI2XVsyNl07DQ0K
ICBzdGF0aWMgYm9vbGVhbiBwYXNraWxsW10gPSBuZXcgYm9vbGVhblsyNl07
DQ0KICBzdGF0aWMgaW50IHAsIGw7DQ0KICBzdGF0aWMgZmluYWwgU3RyaW5n
IE5BTUUgPSAibmV0d2FycyI7DQ0KDQ0KICBwdWJsaWMgc3RhdGljIHZvaWQg
bWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uDQ0KICB7DQ0K
ICAgIGluID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBGaWxlUmVhZGVyKE5B
TUUrIi5pbiIpKTsNDQogICAgb3V0ID0gbmV3IFByaW50V3JpdGVyKG5ldyBG
aWxlV3JpdGVyKE5BTUUrIi5vdXQiKSk7DQ0KDQ0KICAgIHdoaWxlKHRydWUp
ew0NCiAgICAgIC8vIFN5c3RlbS5vdXQucHJpbnRsbigibmV4dCIpOw0NCiAg
ICAgIFN0cmluZyBsaW5lID0gaW4ucmVhZExpbmUoKTsNDQogICAgICBpZiAo
bGluZS5jaGFyQXQoMCk9PScjJyl7DQ0KCW91dC5jbG9zZSgpOw0NCglyZXR1
cm47DQ0KICAgICAgfQ0NCg0NCiAgICAgIHNvbHZlKGxpbmUpOw0NCiAgICB9
DQ0KICB9DQ0KDQ0KICBzdGF0aWMgaW50IG1hcENoYXIoaW50IHgpew0NCiAg
ICB4IC09IChpbnQpJ0EnOw0NCiAgICBpZiAoeDwwKSB4ICs9IDI2Ow0NCiAg
ICBlbHNlIGlmICh4Pj0yNikgeC09IDI2Ow0NCiAgICByZXR1cm4geDsNDQog
IH0NDQoNDQogIHN0YXRpYyBpbnQgbmV4dChpbnQgeCwgaW50IHN0ZXApew0N
CiAgICBpbnQgaSwgeTsNDQoNDQogICAgZm9yKGk9MTsgaTwyNjsgaSsrKXsN
DQogICAgICB5ID0gbWFwQ2hhcigoaW50KXggKyBzdGVwKmkgKyAoaW50KSdB
Jyk7DQ0KICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIm5leHQgIit4KyIg
LT4gIit5KyIgIHN0ZXA6ICIrc3RlcCsiICBpOiAiK2kpOw0NCiAgICAgIGlm
IChtYXBbeF1beV0pew0NCglpZiAoc3RlcCE9MSB8fCAoc3RlcD09MSAmJiAh
cGFza2lsbFt5XSkpIHJldHVybiB5Ow0NCiAgICAgIH0NDQogICAgfQ0NCg0N
CiAgICByZXR1cm4gLTE7DQ0KICB9DQ0KDQ0KICBzdGF0aWMgY2hhciBpbnQy
Y2hhcihpbnQgeCl7DQ0KICAgIHJldHVybiAoY2hhcikoeCArIChpbnQpJ0En
KTsNDQogIH0NDQoNDQogIHN0YXRpYyB2b2lkIHNvbHZlKFN0cmluZyBsaW5l
KSB0aHJvd3MgRXhjZXB0aW9uew0NCiAgICBib29sZWFuIGJEb25lID0gZmFs
c2U7DQ0KICAgIGlmICghYnVpbGQobGluZSkpIHJldHVybjsNDQoNDQogICAg
aW50IG5wLCBubDsNDQoNDQogICAgd2hpbGUodHJ1ZSl7DQ0KICAgDQ0KICAg
ICAgbnAgPSBuZXh0KHAsIDEpOw0NCiAgICAgIG5sID0gbmV4dChsLCAtMSk7
DQ0KDQ0KICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInBhc2tpbDogIitp
bnQyY2hhcihwKSsiIC0+ICIraW50MmNoYXIobnApKTsNDQogICAgICAvL1N5
c3RlbS5vdXQucHJpbnRsbigibGlzcGVyOiAiK2ludDJjaGFyKGwpKyIgLT4g
IitpbnQyY2hhcihubCkpOw0NCg0NCiAgICAgIGlmIChucDwwKXsNDQoJb3V0
LnByaW50KCJQYXNraWxsIHRyYXBwZWQgaW4gbm9kZSAiK2ludDJjaGFyKHAp
KyIgIik7DQ0KCWJEb25lID0gdHJ1ZTsNDQogICAgICB9DQ0KDQ0KICAgICAg
aWYgKG5wPj0wICYmIG5wPT1ubCl7DQ0KCW91dC5wcmludCgiQm90aCBhbm5p
aGlsYXRlZCBpbiBub2RlICIraW50MmNoYXIobnApKyIgIik7DQ0KCWJEb25l
ID0gdHJ1ZTsNDQogICAgICB9DQ0KDQ0KICAgICAgaWYgKG5sPDApew0NCglv
dXQucHJpbnQoIkxpc3BlciB0cmFwcGVkIGluIG5vZGUgIitpbnQyY2hhcihs
KSsiICIpOw0NCgliRG9uZSA9IHRydWU7DQ0KICAgICAgfQ0NCg0NCiAgICAg
IGlmIChubD49MCAmJiBwYXNraWxsW25sXSl7DQ0KCW91dC5wcmludCgiTGlz
cGVyIGRlc3Ryb3llZCBpbiBub2RlICIraW50MmNoYXIobmwpKyIgIik7DQ0K
CWJEb25lID0gdHJ1ZTsNDQogICAgICB9DQ0KDQ0KICAgICAgaWYgKGJEb25l
KXsNDQoJb3V0LnByaW50bG4oKTsNDQoJcmV0dXJuOw0NCiAgICAgIH0NDQoN
DQogICAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiIitucCsiICAiK25sKTsN
DQoNDQogICAgICBwYXNraWxsW25wXSA9IHRydWU7DQ0KICAgICAgcCA9IG5w
Ow0NCiAgICAgIGNsZWFyKG5sKTsNDQogICAgICBsID0gbmw7DQ0KICAgIH0N
DQogIH0NDQoNDQogIHN0YXRpYyB2b2lkIGNsZWFyKGludCB4KXsNDQogICAg
aW50IGk7DQ0KDQ0KICAgIGZvcihpPTA7IGk8MjY7IGkrKyl7DQ0KICAgICAg
bWFwW2ldW3hdID0gZmFsc2U7DQ0KICAgIH0NDQogIH0NDQoNDQogIHN0YXRp
YyBib29sZWFuIGJ1aWxkKFN0cmluZyBsaW5lKSB0aHJvd3MgRXhjZXB0aW9u
ew0NCg0NCiAgICBTdHJpbmdUb2tlbml6ZXIgc3QsIHN0Tm9kZTsNDQogICAg
aW50IGksIHgsIHk7DQ0KDQ0KICAgIGZvcih4PTA7IHg8MjY7IHgrKyl7DQ0K
ICAgICAgcGFza2lsbFt4XSA9IGZhbHNlOw0NCiAgICAgIGZvcih5PTA7IHk8
MjY7IHkrKyl7DQ0KCW1hcFt4XVt5XSA9IGZhbHNlOw0NCiAgICAgIH0NDQog
ICAgfQ0NCg0NCiAgICBzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIobGluZSwg
Ii4iKTsNDQoNDQogICAgc3ROb2RlID0gbmV3IFN0cmluZ1Rva2VuaXplcihz
dC5uZXh0VG9rZW4oKSwgIjsiKTsNDQoNDQogICAgd2hpbGUoc3ROb2RlLmhh
c01vcmVUb2tlbnMoKSl7DQ0KICAgICAgU3RyaW5nIHMgPSBzdE5vZGUubmV4
dFRva2VuKCk7DQ0KDQ0KICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInM6
ICIrcyk7DQ0KDQ0KICAgICAgeCA9IG1hcENoYXIoKGludClzLmNoYXJBdCgw
KSk7DQ0KDQ0KICAgICAgZm9yKGk9MjsgaTxzLmxlbmd0aCgpOyBpKyspew0N
Cgl5ID0gbWFwQ2hhcigoaW50KXMuY2hhckF0KGkpKTsNDQoJLy9TeXN0ZW0u
b3V0LnByaW50bG4oIm1hcCAtICIreCsiIC0+ICIreSk7DQ0KCW1hcFt4XVt5
XSA9IHRydWU7DQ0KCW1hcFt5XVt4XSA9IHRydWU7DQ0KICAgICAgfQ0NCg0N
CiAgICB9DQ0KDQ0KICAgIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihzdC5u
ZXh0VG9rZW4oKSk7DQ0KDQ0KICAgIHAgPSBtYXBDaGFyKChpbnQpc3QubmV4
dFRva2VuKCkuY2hhckF0KDApKTsNDQogICAgcGFza2lsbFtwXSA9dHJ1ZTsN
DQoNDQogICAgbCA9IG1hcENoYXIoKGludClzdC5uZXh0VG9rZW4oKS5jaGFy
QXQoMCkpOw0NCiAgICBjbGVhcihsKTsNDQoNDQogICAgLy9TeXN0ZW0ub3V0
LnByaW50bG4oInN0YXJ0OiAiK3ArIiAgICIrbCk7DQ0KICAgIA0NCiAgICBp
ZiAocD09bCl7DQ0KICAgICAgb3V0LnByaW50bG4oIkJvdGggYW5uaWhpbGF0
ZWQgaW4gbm9kZSAiK2ludDJjaGFyKHApKyIgIik7DQ0KICAgICAgcmV0dXJu
IGZhbHNlOw0NCiAgICB9DQ0KICAgIHJldHVybiB0cnVlOw0NCiAgfQ0NCg0N
Cn0NDQoNDQoNDQo=
---559023410-684387517-980107129=:15683--

From judge@east.isx.com Sun Jan 21 15:49:50 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id PAA06802
	for <judge@east.isx.com>; Sun, 21 Jan 2001 15:49:49 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id PAA00710
	for <judge@east.isx.com>; Sun, 21 Jan 2001 15:40:11 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id PAA18995
	for judge@east.isx.com; Sun, 21 Jan 2001 15:40:10 -0500 (EST)
Date: Sun, 21 Jan 2001 15:40:10 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: stamps sol (java)
Message-ID: <20010121154010.A17477@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="+QahgC5+KEYLbs62"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 3196


--+QahgC5+KEYLbs62
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline



-- 
-Brian McNamara (lorgon@cc.gatech.edu)

--+QahgC5+KEYLbs62
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="stamps.java"

import java.io.*;
import java.util.*;

public class stamps {

public static boolean[] grid;
public static int[] denom;
public static int maxattain;
public static int[] maxdenom;
public static int k, h;

public static void compute (int[] denom) {

int[] temp = new int[k];
int i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
int i,j,sum,vars;

System.out.println("Top of compute");

for(i=1; i < k; i++) if (denom[i] == denom[i-1] || denom[i] == 0) return;

for(i=0; i < k; i++) System.out.println("denom " + i + "  is " + denom[i]);

for (i=0; i < 10000; i++) grid[i] = false;


for(i=0;i<k;i++) temp[i] = denom[i];

for(i0=0; i0 <=h; i0++) {
for(i1=0; i1 <=h; i1++) {
for(i2=0;i2<=h;i2++){
for(i3=0;i3<=h;i3++){
for(i4=0;i4<=h;i4++){
for(i5=0;i5<=h;i5++){
for(i6=0;i6<=h;i6++){
for(i7=0;i7<=h;i7++){
for(i8=0;i8<=h;i8++){

sum = 0;
vars = 0;

switch(k) {

case 9:
	sum += denom[8] * i8;
	vars += i8;

case 8:
	sum += denom[7] * i7;
	vars += i7;
	
case 7:
	sum += denom[6] * i6;
	vars += i6;

case 6:
	sum += denom[5] * i5;
	vars += i5;

case 5:
	sum += denom[4] * i4;
	vars += i4;

case 4:
	sum += denom[3] * i3;
	vars += i3;

case 3:
	sum += denom[2] * i2;
	vars +=i2;

case 2:
	sum += denom[1] * i1;
	vars += i1;

default:
	sum += denom[0] * i0;
	vars +=i0;

} //end switch



if ((vars <= h) && (grid[sum] == false)) {
System.out.println("Assigning true to grid location " + sum);
grid[sum] = true;
//System.out.println("Assigned");
}

} 
}
}
}
}
}
}
}
}//end fors


System.out.println("Made it out the loops");

i=1;
while(grid[i] == true) i++;

if (i-1 > maxattain) {
	System.out.println("Maxattain is " + maxattain);
	maxattain = i-1;
	for(j=0; j < k; j++) { 
		maxdenom[j] = denom[j];
		System.out.println("Maxdenom " + j + "  == " + maxdenom[j]);
	}
}

for(i=k-1; i >= 0; i--) {
	temp[i]--;
	if (temp[i] >= 1) compute(temp);
	temp[i]++;
}

}//end function

public static void main(String argv[]) throws Exception {

PrintWriter out = new PrintWriter (new FileWriter("stamps.out"));
BufferedReader in = new BufferedReader (new FileReader("stamps.in"));
StringTokenizer st;
String str;
int i;

while(true) {

str = in.readLine();
System.out.println("read " + str);
st = new StringTokenizer(str);
h = (new Integer(st.nextToken())).intValue();
k = (new Integer(st.nextToken())).intValue();

if (h == 0 && k == 0) break;

denom = new int[k];
maxdenom = new int[k];

for(i=0; i <k; i++) { 
	denom[i] = i*h+1;
	maxdenom[i] = denom[i];
	maxattain = 0;
}

grid = new boolean[10000];

compute(denom);

str="";

for(i=0;i<k;i++) {
	if (maxdenom[i] < 10) str = str + "  " + maxdenom[i];
	else if (maxdenom[i] < 100) str = str + " " + maxdenom[i];
	else str = str + maxdenom[i];
} // end for

str = str + " ->";

if (maxattain < 10) str = str + "  " + maxattain;
else if (maxattain < 100) str = str + " " + maxattain;
else str = str + maxattain;

out.println(str);

} // end while

out.close();
in.close();

} // end main

} // end class

--+QahgC5+KEYLbs62--

From judge@east.isx.com Sun Jan 21 16:00:26 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id QAA07235
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:00:25 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id PAA01092
	for <judge@east.isx.com>; Sun, 21 Jan 2001 15:50:47 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id PAA19611
	for <judge@east.isx.com>; Sun, 21 Jan 2001 15:50:46 -0500 (EST)
Date: Sun, 21 Jan 2001 15:50:46 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: submit keywords
Message-ID: <Pine.SOL.4.21.0101211549500.12125-200000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1483920592-980110246=:12125"
Content-Length: 4630

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1483920592-980110246=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII



					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)

---559023410-1483920592-980110246=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="keywords.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211550460.12125@oscar.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="keywords.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIGtleXdvcmRzIHsNDQoNDQoJc3RhdGljIFByaW50U3Ry
ZWFtIG91dDsNDQoJc3RhdGljIExpbmtlZExpc3QgcHJvZmlsZXMsIHRpdGxl
czsNDQoNDQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZyBbXSBh
cmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gew0NCgkJU3RyaW5nIHM7DQ0KCQlC
dWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlciAobmV3IEZp
bGVSZWFkZXIgKCJrZXl3b3Jkcy5pbiIpKTsNDQoJCW91dCA9IG5ldyBQcmlu
dFN0cmVhbSAobmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtIChuZXcgRmlsZU91
dHB1dFN0cmVhbSAoImtleXdvcmRzLm91dCIpKSk7DQ0KCQlwcm9maWxlcyA9
IG5ldyBMaW5rZWRMaXN0ICgpOw0NCgkJd2hpbGUgKChzID0gaW4ucmVhZExp
bmUgKCkpICE9IG51bGwgJiYgcy5zdGFydHNXaXRoICgiUDoiKSkgew0NCgkJ
CXMgPSBzLnRvTG93ZXJDYXNlICgpOw0NCgkJCVN0cmluZ1Rva2VuaXplciB0
b2tlID0gbmV3IFN0cmluZ1Rva2VuaXplciAocyk7DQ0KCQkJdG9rZS5uZXh0
VG9rZW4gKCk7DQ0KCQkJTGlua2VkTGlzdCBwcm9maWxlID0gbmV3IExpbmtl
ZExpc3QgKCk7DQ0KCQkJd2hpbGUgKHRva2UuaGFzTW9yZVRva2VucyAoKSkN
DQoJCQkJcHJvZmlsZS5hZGQgKHRva2UubmV4dFRva2VuICgpKTsNDQoJCQlw
cm9maWxlcy5hZGQgKHByb2ZpbGUpOw0NCgkJfQ0NCgkJcyA9IHMudG9Mb3dl
ckNhc2UgKCk7DQ0KCQlTdHJpbmdCdWZmZXIgYmlnX3N0cmluZyA9IG5ldyBT
dHJpbmdCdWZmZXIgKHMpOw0NCgkJd2hpbGUgKChzID0gaW4ucmVhZExpbmUg
KCkpICE9IG51bGwgJiYgIXMuZXF1YWxzICgiIyIpKSB7DQ0KCQkJcyA9IHMu
dG9Mb3dlckNhc2UgKCk7DQ0KCQkJYmlnX3N0cmluZy5hcHBlbmQgKHMpOw0N
CgkJfQ0NCgkJaW4uY2xvc2UgKCk7DQ0KCQlmb3IgKGludCBpID0gMDsgaSA8
IGJpZ19zdHJpbmcubGVuZ3RoICgpOyBpKyspIHsNDQoJCQl3aGlsZSAoaSA8
IGJpZ19zdHJpbmcubGVuZ3RoICgpICYmICFDaGFyYWN0ZXIuaXNMZXR0ZXIg
KGJpZ19zdHJpbmcuY2hhckF0IChpKSkgJiYgYmlnX3N0cmluZy5jaGFyQXQg
KGkpICE9ICd8Jw0NCgkJCQkJJiYgYmlnX3N0cmluZy5jaGFyQXQgKGkpICE9
ICcgJykNDQoJCQkJYmlnX3N0cmluZy5kZWxldGVDaGFyQXQgKGkpOw0NCgkJ
fQ0NCgkJdGl0bGVzID0gbmV3IExpbmtlZExpc3QgKCk7DQ0KCQlTdHJpbmdU
b2tlbml6ZXIgdG9rZSA9IG5ldyBTdHJpbmdUb2tlbml6ZXIgKGJpZ19zdHJp
bmcudG9TdHJpbmcgKCksICIgfCIsIHRydWUpOw0NCgkJaWYgKHRva2UuaGFz
TW9yZVRva2VucyAoKSkNDQoJCQl0b2tlLm5leHRUb2tlbiAoKTsNDQoJCUxp
bmtlZExpc3QgbGlzdCA9IG5ldyBMaW5rZWRMaXN0ICgpOw0NCgkJdGl0bGVz
LmFkZCAobGlzdCk7DQ0KCQl3aGlsZSAodG9rZS5oYXNNb3JlVG9rZW5zICgp
KSB7DQ0KCQkJcyA9IHRva2UubmV4dFRva2VuICgpOw0NCgkJCWlmIChzLmVx
dWFscyAoInwiKSkgew0NCgkJCQl3aGlsZSAodG9rZS5oYXNNb3JlVG9rZW5z
ICgpICYmIHRva2UubmV4dFRva2VuICgpLmVxdWFscyAoIiAiKSk7DQ0KCQkJ
CWlmICh0b2tlLmhhc01vcmVUb2tlbnMgKCkpIHsNDQoJCQkJCWxpc3QgPSBu
ZXcgTGlua2VkTGlzdCAoKTsNDQoJCQkJCXRpdGxlcy5hZGQgKGxpc3QpOw0N
CgkJCQl9DQ0KCQkJfQ0NCgkJCWVsc2UgaWYgKCFzLmVxdWFscyAoIiAiKSkN
DQoJCQkJbGlzdC5hZGQgKHMpOw0NCgkJfQ0NCgkJT2JqZWN0IFtdIHRhcnAg
PSB0aXRsZXMudG9BcnJheSAoKTsNDQoJCWZvciAoaW50IGkgPSAwOyBpIDwg
dGFycC5sZW5ndGg7IGkrKykNDQoJCQl0YXJwIFtpXSA9ICgoTGlua2VkTGlz
dCkgdGFycCBbaV0pLnRvQXJyYXkgKCk7DQ0KCQlpbnQgcCA9IDA7DQ0KCQlJ
dGVyYXRvciBpdHR5ID0gcHJvZmlsZXMuaXRlcmF0b3IgKCk7DQ0KCQl3aGls
ZSAoaXR0eS5oYXNOZXh0ICgpKSB7DQ0KCQkJYm9vbGVhbiBmaXJzdCA9IHRy
dWU7DQ0KCQkJcCsrOw0NCgkJCW91dC5wcmludCAocCArICI6ICIpOw0NCgkJ
CU9iamVjdCBbXSB0ZW1wID0gKChMaW5rZWRMaXN0KSBpdHR5Lm5leHQgKCkp
LnRvQXJyYXkgKCk7DQ0KCQkJaW50IHNwYWNpbmcgPSBJbnRlZ2VyLnBhcnNl
SW50ICh0ZW1wIFswXS50b1N0cmluZyAoKSkgKyAxOw0NCgkJCW91dGVyOiBm
b3IgKGludCBpID0gMDsgaSA8IHRhcnAubGVuZ3RoOyBpKyspIHsNDQoJCQkJ
T2JqZWN0IFtdIHRpdGxlID0gKE9iamVjdCBbXSkgdGFycCBbaV07DQ0KCQkJ
CWZvciAoaW50IGogPSAxOyBqIDwgdGVtcC5sZW5ndGggLSAxOyBqKyspIHsN
DQoJCQkJCWZvciAoaW50IGsgPSBqICsgMTsgayA8IHRlbXAubGVuZ3RoOyBr
KyspIHsNDQoJCQkJCQlmb3IgKGludCBsID0gMDsgbCA8IHRpdGxlLmxlbmd0
aDsgbCsrKSB7DQ0KCQkJCQkJCWlmICh0aXRsZSBbbF0uZXF1YWxzICh0ZW1w
IFtqXSkpIHsNDQoJCQkJCQkJCWZvciAoaW50IG0gPSBsIC0gc3BhY2luZzsg
bSA8PSBsICsgc3BhY2luZzsgbSsrKSB7DQ0KCQkJCQkJCQkJaWYgKG0gPj0g
MCAmJiBtIDwgdGl0bGUubGVuZ3RoICYmIHRpdGxlIFttXS5lcXVhbHMgKHRl
bXAgW2tdKSkgew0NCgkJCQkJCQkJCQlpZiAoIWZpcnN0KQ0NCgkJCQkJCQkJ
CQkJb3V0LnByaW50ICgiLCIpOw0NCgkJCQkJCQkJCQllbHNlDQ0KCQkJCQkJ
CQkJCQlmaXJzdCA9IGZhbHNlOw0NCgkJCQkJCQkJCQlvdXQucHJpbnQgKChp
ICsgMSkpOw0NCgkJCQkJCQkJCQljb250aW51ZSBvdXRlcjsNDQoJCQkJCQkJ
CQl9DQ0KCQkJCQkJCQl9DQ0KCQkJCQkJCX0NDQoJCQkJCQl9DQ0KCQkJCQl9
DQ0KCQkJCX0NDQoJCQl9DQ0KCQkJb3V0LnByaW50bG4gKCk7DQ0KCQl9DQ0K
CQlvdXQuY2xvc2UgKCk7DQ0KCX0NDQoNDQp9
---559023410-1483920592-980110246=:12125--

From judge@east.isx.com Sun Jan 21 16:09:27 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id QAA07379
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:09:26 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id PAA01633
	for <judge@east.isx.com>; Sun, 21 Jan 2001 15:59:48 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id PAA19464
	for judge@east.isx.com; Sun, 21 Jan 2001 15:59:48 -0500 (EST)
Date: Sun, 21 Jan 2001 15:59:47 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: stamps java sol
Message-ID: <20010121155947.A19457@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="7AUc2qLy4jB3hD7Z"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 3242


--7AUc2qLy4jB3hD7Z
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline



-- 
-Brian McNamara (lorgon@cc.gatech.edu)

--7AUc2qLy4jB3hD7Z
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="stamps.java"

import java.io.*;
import java.util.*;

public class stamps {

public static boolean[] grid;
public static int[] denom;
public static int maxattain;
public static int[] maxdenom;
public static int k, h;

public static void compute (int[] denom) {

int[] temp = new int[k];
int i0,i1,i2,i3,i4,i5,i6,i7,i8,i9;
int i,j,sum,vars;

//System.out.println("Top of compute");

for(i=1; i < k; i++) if (denom[i] == denom[i-1] || denom[i] == 0) return;

//for(i=0; i < k; i++) //System.out.println("denom " + i + "  is " + denom[i]);

for (i=0; i < 10000; i++) grid[i] = false;


for(i=0;i<k;i++) temp[i] = denom[i];

for(i0=0; i0 <=h; i0++) {
for(i1=0; i1 <=h; i1++) {
for(i2=0;i2<=h;i2++){
for(i3=0;i3<=h;i3++){
for(i4=0;i4<=h;i4++){
for(i5=0;i5<=h;i5++){
for(i6=0;i6<=h;i6++){
for(i7=0;i7<=h;i7++){
for(i8=0;i8<=h;i8++){

sum = 0;
vars = 0;

switch(k) {

case 9:
	sum += denom[8] * i8;
	vars += i8;

case 8:
	sum += denom[7] * i7;
	vars += i7;
	
case 7:
	sum += denom[6] * i6;
	vars += i6;

case 6:
	sum += denom[5] * i5;
	vars += i5;

case 5:
	sum += denom[4] * i4;
	vars += i4;

case 4:
	sum += denom[3] * i3;
	vars += i3;

case 3:
	sum += denom[2] * i2;
	vars +=i2;

case 2:
	sum += denom[1] * i1;
	vars += i1;

default:
	sum += denom[0] * i0;
	vars +=i0;

} //end switch



if ((vars <= h) && (grid[sum] == false)) {
//System.out.println("Assigning true to grid location " + sum);
grid[sum] = true;
//System.out.println("Assigned");
}

} 
}
}
}
}
}
}
}
}//end fors


//System.out.println("Made it out the loops");

i=1;
while(grid[i] == true) i++;

if (i-1 > maxattain) {
	//System.out.println("Maxattain is " + maxattain);
	maxattain = i-1;
	for(j=0; j < k; j++) { 
		maxdenom[j] = denom[j];
		//System.out.println("Maxdenom " + j + "  == " + maxdenom[j]);
	}
}

for(i=k-1; i >= 0; i--) {
	temp[i]--;
	if (temp[i] >= 1) compute(temp);
	temp[i]++;
}

}//end function

public static void main(String argv[]) throws Exception {

PrintWriter out = new PrintWriter (new FileWriter("stamps.out"));
BufferedReader in = new BufferedReader (new FileReader("stamps.in"));
StringTokenizer st;
String str;
int i;

while(true) {

str = in.readLine();
//System.out.println("read " + str);
st = new StringTokenizer(str);
h = (new Integer(st.nextToken())).intValue();
k = (new Integer(st.nextToken())).intValue();

if (h == 0 && k == 0) break;

denom = new int[k];
maxdenom = new int[k];

for(i=0; i <k; i++) { 
	denom[i] = i*h+1;
	maxdenom[i] = denom[i];
	maxattain = 0;
}

grid = new boolean[10000];

if(k > 1) compute(denom);
else maxattain = h;

str="";

for(i=0;i<k;i++) {
	if (maxdenom[i] < 10) str = str + "  " + maxdenom[i];
	else if (maxdenom[i] < 100) str = str + " " + maxdenom[i];
	else str = str + maxdenom[i];
} // end for

str = str + " ->";

if (maxattain < 10) str = str + "  " + maxattain;
else if (maxattain < 100) str = str + " " + maxattain;
else str = str + maxattain;

out.println(str);

} // end while

out.close();
in.close();

} // end main

} // end class

--7AUc2qLy4jB3hD7Z--

From judge@east.isx.com Sun Jan 21 16:23:42 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id QAA08077
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:23:41 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id QAA02788
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:14:03 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id QAA21683
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:14:02 -0500 (EST)
Date: Sun, 21 Jan 2001 16:14:01 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: question on keywords
Message-ID: <Pine.SOL.4.21.0101211611330.12125-100000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Content-Length: 415

The text is unclear as to whether the same keyword may appear twice in a
profile, and how to handle this case if it may occur.  Since it doesn't
say it can't occur, we assume that it is legal.  However, how the program
should deal with this input is undefined.  If the word is only in a title
once, would this match a profile where the word was present twice?

					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)


From judge@east.isx.com Sun Jan 21 16:29:18 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id QAA08105
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:29:17 -0500 (EST)
Received: from oscar.cc.gatech.edu (oscar.cc.gatech.edu [130.207.107.12])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id QAA03073
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:19:40 -0500 (EST)
Received: from localhost (mahesh@localhost)
	by oscar.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id QAA21931
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:19:39 -0500 (EST)
Date: Sun, 21 Jan 2001 16:19:38 -0500 (EST)
From: Mahesh <mahesh@cc.gatech.edu>
To: judge@east.isx.com
Subject: submit keywords
Message-ID: <Pine.SOL.4.21.0101211619040.12125-200000@oscar.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-351212254-980111978=:12125"
Content-Length: 4643

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-351212254-980111978=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII



					
			-Mahesh Balakrishnan (mahesh@cc.gatech.edu)

---559023410-351212254-980111978=:12125
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="keywords.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211619380.12125@oscar.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="keywords.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIGtleXdvcmRzIHsNDQoNDQoJc3RhdGljIFByaW50U3Ry
ZWFtIG91dDsNDQoJc3RhdGljIExpbmtlZExpc3QgcHJvZmlsZXMsIHRpdGxl
czsNDQoNDQoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZyBbXSBh
cmdzKSB0aHJvd3MgSU9FeGNlcHRpb24gew0NCgkJU3RyaW5nIHM7DQ0KCQlC
dWZmZXJlZFJlYWRlciBpbiA9IG5ldyBCdWZmZXJlZFJlYWRlciAobmV3IEZp
bGVSZWFkZXIgKCJrZXl3b3Jkcy5pbiIpKTsNDQoJCW91dCA9IG5ldyBQcmlu
dFN0cmVhbSAobmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtIChuZXcgRmlsZU91
dHB1dFN0cmVhbSAoImtleXdvcmRzLm91dCIpKSk7DQ0KCQlwcm9maWxlcyA9
IG5ldyBMaW5rZWRMaXN0ICgpOw0NCgkJd2hpbGUgKChzID0gaW4ucmVhZExp
bmUgKCkpICE9IG51bGwgJiYgcy5zdGFydHNXaXRoICgiUDoiKSkgew0NCgkJ
CXMgPSBzLnRvTG93ZXJDYXNlICgpOw0NCgkJCVN0cmluZ1Rva2VuaXplciB0
b2tlID0gbmV3IFN0cmluZ1Rva2VuaXplciAocyk7DQ0KCQkJdG9rZS5uZXh0
VG9rZW4gKCk7DQ0KCQkJTGlua2VkTGlzdCBwcm9maWxlID0gbmV3IExpbmtl
ZExpc3QgKCk7DQ0KCQkJd2hpbGUgKHRva2UuaGFzTW9yZVRva2VucyAoKSkN
DQoJCQkJcHJvZmlsZS5hZGQgKHRva2UubmV4dFRva2VuICgpKTsNDQoJCQlw
cm9maWxlcy5hZGQgKHByb2ZpbGUpOw0NCgkJfQ0NCgkJcyA9IHMudG9Mb3dl
ckNhc2UgKCk7DQ0KCQlTdHJpbmdCdWZmZXIgYmlnX3N0cmluZyA9IG5ldyBT
dHJpbmdCdWZmZXIgKHMpOw0NCgkJd2hpbGUgKChzID0gaW4ucmVhZExpbmUg
KCkpICE9IG51bGwgJiYgIXMuZXF1YWxzICgiIyIpKSB7DQ0KCQkJcyA9IHMu
dG9Mb3dlckNhc2UgKCk7DQ0KCQkJYmlnX3N0cmluZy5hcHBlbmQgKHMpOw0N
CgkJfQ0NCgkJaW4uY2xvc2UgKCk7DQ0KCQlmb3IgKGludCBpID0gMDsgaSA8
IGJpZ19zdHJpbmcubGVuZ3RoICgpOyBpKyspIHsNDQoJCQl3aGlsZSAoaSA8
IGJpZ19zdHJpbmcubGVuZ3RoICgpICYmICFDaGFyYWN0ZXIuaXNMZXR0ZXIg
KGJpZ19zdHJpbmcuY2hhckF0IChpKSkgJiYgYmlnX3N0cmluZy5jaGFyQXQg
KGkpICE9ICd8Jw0NCgkJCQkJJiYgYmlnX3N0cmluZy5jaGFyQXQgKGkpICE9
ICcgJykNDQoJCQkJYmlnX3N0cmluZy5kZWxldGVDaGFyQXQgKGkpOw0NCgkJ
fQ0NCgkJdGl0bGVzID0gbmV3IExpbmtlZExpc3QgKCk7DQ0KCQlTdHJpbmdU
b2tlbml6ZXIgdG9rZSA9IG5ldyBTdHJpbmdUb2tlbml6ZXIgKGJpZ19zdHJp
bmcudG9TdHJpbmcgKCksICIgfCIsIHRydWUpOw0NCgkJaWYgKHRva2UuaGFz
TW9yZVRva2VucyAoKSkNDQoJCQl0b2tlLm5leHRUb2tlbiAoKTsNDQoJCUxp
bmtlZExpc3QgbGlzdCA9IG5ldyBMaW5rZWRMaXN0ICgpOw0NCgkJdGl0bGVz
LmFkZCAobGlzdCk7DQ0KCQl3aGlsZSAodG9rZS5oYXNNb3JlVG9rZW5zICgp
KSB7DQ0KCQkJcyA9IHRva2UubmV4dFRva2VuICgpOw0NCgkJCWlmIChzLmVx
dWFscyAoInwiKSkgew0NCgkJCQl3aGlsZSAodG9rZS5oYXNNb3JlVG9rZW5z
ICgpICYmIHRva2UubmV4dFRva2VuICgpLmVxdWFscyAoIiAiKSk7DQ0KCQkJ
CWlmICh0b2tlLmhhc01vcmVUb2tlbnMgKCkpIHsNDQoJCQkJCWxpc3QgPSBu
ZXcgTGlua2VkTGlzdCAoKTsNDQoJCQkJCXRpdGxlcy5hZGQgKGxpc3QpOw0N
CgkJCQl9DQ0KCQkJfQ0NCgkJCWVsc2UgaWYgKCFzLmVxdWFscyAoIiAiKSkN
DQoJCQkJbGlzdC5hZGQgKHMpOw0NCgkJfQ0NCgkJT2JqZWN0IFtdIHRhcnAg
PSB0aXRsZXMudG9BcnJheSAoKTsNDQoJCWZvciAoaW50IGkgPSAwOyBpIDwg
dGFycC5sZW5ndGg7IGkrKykNDQoJCQl0YXJwIFtpXSA9ICgoTGlua2VkTGlz
dCkgdGFycCBbaV0pLnRvQXJyYXkgKCk7DQ0KCQlpbnQgcCA9IDA7DQ0KCQlJ
dGVyYXRvciBpdHR5ID0gcHJvZmlsZXMuaXRlcmF0b3IgKCk7DQ0KCQl3aGls
ZSAoaXR0eS5oYXNOZXh0ICgpKSB7DQ0KCQkJYm9vbGVhbiBmaXJzdCA9IHRy
dWU7DQ0KCQkJcCsrOw0NCgkJCW91dC5wcmludCAocCArICI6ICIpOw0NCgkJ
CU9iamVjdCBbXSB0ZW1wID0gKChMaW5rZWRMaXN0KSBpdHR5Lm5leHQgKCkp
LnRvQXJyYXkgKCk7DQ0KCQkJaW50IHNwYWNpbmcgPSBJbnRlZ2VyLnBhcnNl
SW50ICh0ZW1wIFswXS50b1N0cmluZyAoKSkgKyAxOw0NCgkJCW91dGVyOiBm
b3IgKGludCBpID0gMDsgaSA8IHRhcnAubGVuZ3RoOyBpKyspIHsNDQoJCQkJ
T2JqZWN0IFtdIHRpdGxlID0gKE9iamVjdCBbXSkgdGFycCBbaV07DQ0KCQkJ
CWZvciAoaW50IGogPSAxOyBqIDwgdGVtcC5sZW5ndGggLSAxOyBqKyspIHsN
DQoJCQkJCWZvciAoaW50IGsgPSBqICsgMTsgayA8IHRlbXAubGVuZ3RoOyBr
KyspIHsNDQoJCQkJCQlmb3IgKGludCBsID0gMDsgbCA8IHRpdGxlLmxlbmd0
aDsgbCsrKSB7DQ0KCQkJCQkJCWlmICh0aXRsZSBbbF0uZXF1YWxzICh0ZW1w
IFtqXSkpIHsNDQoJCQkJCQkJCWZvciAoaW50IG0gPSBsIC0gc3BhY2luZzsg
bSA8PSBsICsgc3BhY2luZzsgbSsrKSB7DQ0KCQkJCQkJCQkJaWYgKG0gIT0g
bCAmJiBtID49IDAgJiYgbSA8IHRpdGxlLmxlbmd0aCAmJiB0aXRsZSBbbV0u
ZXF1YWxzICh0ZW1wIFtrXSkpIHsNDQoJCQkJCQkJCQkJaWYgKCFmaXJzdCkN
DQoJCQkJCQkJCQkJCW91dC5wcmludCAoIiwiKTsNDQoJCQkJCQkJCQkJZWxz
ZQ0NCgkJCQkJCQkJCQkJZmlyc3QgPSBmYWxzZTsNDQoJCQkJCQkJCQkJb3V0
LnByaW50ICgoaSArIDEpKTsNDQoJCQkJCQkJCQkJY29udGludWUgb3V0ZXI7
DQ0KCQkJCQkJCQkJfQ0NCgkJCQkJCQkJfQ0NCgkJCQkJCQl9DQ0KCQkJCQkJ
fQ0NCgkJCQkJfQ0NCgkJCQl9DQ0KCQkJfQ0NCgkJCW91dC5wcmludGxuICgp
Ow0NCgkJfQ0NCgkJb3V0LmNsb3NlICgpOw0NCgl9DQ0KDQ0KfQ==
---559023410-351212254-980111978=:12125--

From judge@east.isx.com Sun Jan 21 17:08:10 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id RAA09136
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:08:08 -0500 (EST)
Received: from felix.cc.gatech.edu (felix.cc.gatech.edu [130.207.107.11])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id QAA04682
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:58:31 -0500 (EST)
Received: from localhost (dminn@localhost)
	by felix.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id QAA22244
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:58:30 -0500 (EST)
Date: Sun, 21 Jan 2001 16:58:30 -0500 (EST)
From: "David C. Minnen" <dminn@cc.gatech.edu>
To: judge@east.isx.com
Subject: strategy - java
Message-ID: <Pine.SOL.4.21.0101211658130.15683-200000@felix.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1254324197-980114310=:15683"
Content-Length: 8347

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1254324197-980114310=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII



 david


---559023410-1254324197-980114310=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="strategy.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211658300.15683@felix.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="strategy.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KDQ0K
cHVibGljIGNsYXNzIHN0cmF0ZWd5ew0NCg0NCiAgc3RhdGljIEJ1ZmZlcmVk
UmVhZGVyIGluOw0NCiAgc3RhdGljIFByaW50V3JpdGVyIG91dDsNDQogIHN0
YXRpYyBmaW5hbCBTdHJpbmcgTkFNRSA9ICJzdHJhdGVneSI7DQ0KDQ0KICBz
dGF0aWMgaW50IG5Qcm9nID0gMDsNDQogIHN0YXRpYyBpbnQgTGFzdDEgPSAw
LCBMYXN0MiA9IDE7DQ0KICBzdGF0aWMgaW50IE51bGwgPSAtMSwgVHJhZGUg
PSAxMCwgQ2hlYXQgPSAxMSwgQW5kID0gMjAsIE9yID0gMjE7DQ0KICBzdGF0
aWMgaW50IEVxdWFsID0gMTAwLCBOb3RFcXVhbCA9IDEwMTsNDQogIHN0YXRp
YyBTdHJpbmcgcHJvZ3NbXSA9IG5ldyBTdHJpbmdbMTBdOw0NCiAgc3RhdGlj
IGludCBvbGRbXVtdID0gbmV3IGludFsxMF1bMl07DQ0KICBzdGF0aWMgaW50
IGl4LCBtZSwgeW91LCBsZW47DQ0KICBzdGF0aWMgY2hhciBwW107DQ0KICBz
dGF0aWMgaW50IHNjb3JlW10gPSBuZXcgaW50WzEwXTsNDQoNDQogIHB1Ymxp
YyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBFeGNl
cHRpb24NDQogIHsNDQogICAgaW4gPSBuZXcgQnVmZmVyZWRSZWFkZXIobmV3
IEZpbGVSZWFkZXIoTkFNRSsiLmluIikpOw0NCiAgICBvdXQgPSBuZXcgUHJp
bnRXcml0ZXIobmV3IEZpbGVXcml0ZXIoTkFNRSsiLm91dCIpKTsNDQoNDQog
ICAgcmVhZElucHV0KCk7DQ0KICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJu
cHJvZzogIituUHJvZyk7DQ0KDQ0KICAgIHNvbHZlKCk7DQ0KICAgIG91dC5j
bG9zZSgpOw0NCiAgICBpbi5jbG9zZSgpOw0NCiAgfQ0NCg0NCiAgc3RhdGlj
IHZvaWQgcmVhZElucHV0KCkgdGhyb3dzIEV4Y2VwdGlvbg0NCiAgew0NCiAg
ICBuUHJvZyA9IDA7DQ0KICAgIFN0cmluZyBzID0gIiI7DQ0KICAgIFN0cmlu
ZyBsaW5lOw0NCiAgICB3aGlsZSgobGluZSA9IGluLnJlYWRMaW5lKCkpIT1u
dWxsKXsNDQogICAgICBzICs9IGxpbmU7DQ0KICAgIH0NDQoNDQogICAgLy9T
eXN0ZW0ub3V0LnByaW50bG4oImlucHV0OiAiK3MpOw0NCg0NCiAgICBTdHJp
bmdUb2tlbml6ZXIgc3QgPSBuZXcgU3RyaW5nVG9rZW5pemVyKHMsICIuIik7
DQ0KICAgIHdoaWxlKHN0Lmhhc01vcmVUb2tlbnMoKSl7DQ0KICAgICAgU3Ry
aW5nIHMyID0gc3QubmV4dFRva2VuKCk7DQ0KICAgICAgaWYgKHMyLmNoYXJB
dCgwKSA9PSAnIycpIGJyZWFrOw0NCiAgICAgIHByb2dzW25Qcm9nKytdID0g
czI7DQ0KICAgICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oInByb2cgIituUHJv
ZysiID0gIitwcm9nc1tuUHJvZy0xXSk7DQ0KICAgIH0NDQogIH0NDQoNDQog
IHN0YXRpYyB2b2lkIHNvbHZlKCkgdGhyb3dzIEV4Y2VwdGlvbg0NCiAgew0N
CiAgICBpbnQgaSwgajsNDQogICAgZm9yKGk9MDsgaTxuUHJvZzsgaSsrKSBz
Y29yZVtpXSA9IDA7DQ0KDQ0KICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCJz
b2x2ZSAoblByb2c6ICIrblByb2crIikiKTsNDQoNDQogICAgZm9yKGk9MDsg
aTxuUHJvZy0xOyBpKyspew0NCiAgICAgIGZvcihqPWkrMTsgajxuUHJvZzsg
aisrKXsNDQoJcGxheShpLCBqKTsNDQogICAgICB9DQ0KICAgIH0NDQoNDQog
ICAgZm9yKGk9MDsgaTxuUHJvZzsgaSsrKXsNDQogICAgICBTdHJpbmcgcyA9
ICIiK3Njb3JlW2ldOw0NCiAgICAgIGZvcihqPTA7IGo8My1zLmxlbmd0aCgp
OyBqKyspew0NCglvdXQucHJpbnQoIiAiKTsNDQogICAgICB9DQ0KICAgICAg
b3V0LnByaW50bG4ocyk7DQ0KICAgIH0NDQogIH0NDQogIA0NCiAgc3RhdGlj
IHZvaWQgcGxheShpbnQgeCwgaW50IHkpew0NCiAgICBvbGRbeF1bMF0gPSBv
bGRbeF1bMV0gPSBOdWxsOw0NCiAgICBvbGRbeV1bMF0gPSBvbGRbeV1bMV0g
PSBOdWxsOw0NCg0NCiAgICBpbnQgaTsNDQoNDQogICAgLy9TeXN0ZW0ub3V0
LnByaW50bG4oInBsYXk6ICIreCsiICIreSk7DQ0KDQ0KICAgIGZvcihpPTA7
IGk8MTA7IGkrKyl7DQ0KICAgICAgaW50IG1vdmUxID0gZXhlYyhwcm9nc1t4
XSwgeCwgeSk7DQ0KICAgICAgaW50IG1vdmUyID0gZXhlYyhwcm9nc1t5XSwg
eSwgeCk7DQ0KICAgICAgb2xkW3hdW0xhc3QyXSA9IG9sZFt4XVtMYXN0MV07
DQ0KICAgICAgb2xkW3hdW0xhc3QxXSA9IG1vdmUxOw0NCiAgICAgIG9sZFt5
XVtMYXN0Ml0gPSBvbGRbeV1bTGFzdDFdOw0NCiAgICAgIG9sZFt5XVtMYXN0
MV0gPSBtb3ZlMjsNDQogICAgICBpZiAobW92ZTE9PVRyYWRlICYmIG1vdmUy
PT1UcmFkZSl7DQ0KCXNjb3JlW3hdKys7DQ0KCXNjb3JlW3ldKys7DQ0KICAg
ICAgfQ0NCiAgICAgIGVsc2UgaWYgKG1vdmUxPT1UcmFkZSAmJiBtb3ZlMj09
Q2hlYXQpew0NCglzY29yZVt4XSAtPSAyOw0NCglzY29yZVt5XSArPSAyOw0N
CiAgICAgIH0NDQogICAgICBlbHNlIGlmIChtb3ZlMT09Q2hlYXQgJiYgbW92
ZTI9PVRyYWRlKXsNDQoJc2NvcmVbeF0gKz0gMjsNDQoJc2NvcmVbeV0gLT0g
MjsNDQogICAgICB9DQ0KICAgICAgZWxzZSBpZiAobW92ZTE9PUNoZWF0ICYm
IG1vdmUyPT1DaGVhdCl7DQ0KCXNjb3JlW3hdLS07DQ0KCXNjb3JlW3ldLS07
DQ0KICAgICAgfQ0NCiAgICB9DQ0KDQ0KICAgIC8vU3lzdGVtLm91dC5wcmlu
dGxuKCJkb25lIHBsYXlpbmciKTsNDQogIH0NDQoNDQogIHN0YXRpYyBpbnQg
ZXhlYyhTdHJpbmcgcywgaW50IHgsIGludCB5KQ0NCiAgew0NCiAgICAvL1N5
c3RlbS5vdXQucHJpbnRsbigiIGV4ZWMgLSAiK3grIiAiK3kpOw0NCiAgICBw
ID0gcy50b0NoYXJBcnJheSgpOw0NCiAgICBpeCA9IDA7DQ0KICAgIG1lID0g
eDsNDQogICAgeW91ID0geTsNDQogICAgbGVuID0gcy5sZW5ndGgoKTsgICAg
cmV0dXJuIHBhcnNlU3RhdGVtZW50KCk7DQ0KICB9DQ0KDQ0KICBzdGF0aWMg
aW50IHBhcnNlU3RhdGVtZW50KCkNDQogIHsNDQogICAgLy9TeXN0ZW0ub3V0
LnByaW50bG4oIiAgc3RhdGVtZW50Iik7DQ0KICAgIHNraXBXUygpOw0NCiAg
ICBpZiAocGVla0NvbW1hbmQoKSl7DQ0KICAgICAgcmV0dXJuIHBhcnNlQ29t
bWFuZCgpOw0NCiAgICB9DQ0KICAgIHJldHVybiBwYXJzZUlmKCk7DQ0KICB9
DQ0KDQ0KICBzdGF0aWMgYm9vbGVhbiBwZWVrQ29tbWFuZCgpDQ0KICB7DQ0K
ICAgIHJldHVybiAocFtpeF09PSdUJyB8fCBwW2l4XT09J0MnKTsNDQogIH0N
DQoNDQogIHN0YXRpYyBpbnQgcGFyc2VDb21tYW5kKCkNDQogIHsNDQoNDQog
ICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oIiAgY29tbWFuZCIpOw0NCiAgICBz
a2lwV1MoKTsNDQogICAgaWYgKHBbaXhdPT0nVCcpew0NCiAgICAgIGVhdCgi
VFJBREUiKTsNDQogICAgICByZXR1cm4gVHJhZGU7DQ0KICAgIH0NDQogICAg
ZWF0KCJDSEVBVCIpOw0NCiAgICByZXR1cm4gQ2hlYXQ7DQ0KICB9DQ0KDQ0K
ICBzdGF0aWMgaW50IHBhcnNlSWYoKXsNDQogICAgaW50IHgsIHk7DQ0KICAg
IGJvb2xlYW4gYng7DQ0KDQ0KICAgIC8vU3lzdGVtLm91dC5wcmludGxuKCIg
IGlmIik7DQ0KICAgIGVhdCgiSUYiKTsNDQogICAgYnggPSBwYXJzZUNvbmRp
dGlvbigpOw0NCiAgICBlYXQoIlRIRU4iKTsNDQogICAgeCA9IHBhcnNlU3Rh
dGVtZW50KCk7DQ0KICAgIGVhdCgiRUxTRSIpOw0NCiAgICB5ID0gcGFyc2VT
dGF0ZW1lbnQoKTsNDQogICAgaWYgKGJ4KSByZXR1cm4geDsNDQogICAgZWxz
ZSByZXR1cm4geTsNDQogIH0NDQoNDQogIHN0YXRpYyB2b2lkIGVhdChTdHJp
bmcgcykNDQogIHsNDQogICAgLy9TeXN0ZW0ub3V0LnByaW50bG4oImVhdGlu
ZzogIitzKTsNDQogICAgaW50IGk7DQ0KICAgIGZvcihpPTA7IGk8cy5sZW5n
dGgoKTsgaSsrKXsNDQogICAgICBza2lwV1MoKTsNDQogICAgICBpZiAocFtp
eF0gIT0gcy5jaGFyQXQoaSkpew0NCglTeXN0ZW0ub3V0LnByaW50bG4oIkVy
cm9yIGVhdGluZyEgIitzKTsNDQoJU3lzdGVtLmV4aXQoMCk7DQ0KICAgICAg
fQ0NCiAgICAgIGl4Kys7DQ0KICAgIH0NDQogICAgc2tpcFdTKCk7DQ0KICB9
DQ0KDQ0KICBzdGF0aWMgdm9pZCBza2lwV1MoKQ0NCiAgew0NCiAgICBpbnQg
aTsNDQogICAgd2hpbGUoaXg8bGVuKXsNDQogICAgICBjaGFyIGMgPSBwW2l4
XTsNDQogICAgICBpZiAoYyE9JyAnICYmIGMhPSdcdCcgJiYgYyE9J1xyJyAm
JiBjIT0nXG4nKSByZXR1cm47DQ0KICAgICAgaXgrKzsNDQogICAgfQ0NCiAg
fQ0NCg0NCiAgc3RhdGljIGJvb2xlYW4gcGFyc2VDb25kaXRpb24oKQ0NCiAg
ew0NCg0NCiAgICAvL1N5c3RlbS5vdXQucHJpbnRsbigiICBjb25kaXRpb24i
KTsNDQogICAgYm9vbGVhbiB4LCB5Ow0NCiAgICBpbnQgb3A7DQ0KICAgIA0N
CiAgICBza2lwV1MoKTsNDQogICAgeCA9IHBhcnNlQ29uZCgpOw0NCiAgICBz
a2lwV1MoKTsNDQogICAgaWYgKHBlZWtPcCgpKXsNDQogICAgICBvcCA9IHBh
cnNlT3AoKTsNDQogICAgICB5ID0gcGFyc2VDb25kaXRpb24oKTsNDQogICAg
ICBpZiAob3A9PUFuZCkgcmV0dXJuIHggJiYgeTsgZWxzZSByZXR1cm4geCB8
fCB5Ow0NCiAgICB9DQ0KICAgIHJldHVybiB4Ow0NCiAgfQ0NCg0NCiAgc3Rh
dGljIGJvb2xlYW4gcGVla09wKCkNDQogIHsNDQogICAgcmV0dXJuIChwW2l4
XT09J0EnIHx8IHBbaXhdPT0nTycpOw0NCiAgfQ0NCg0NCiAgc3RhdGljIGlu
dCBwYXJzZU9wKCkNDQogIHsNDQogICAgc2tpcFdTKCk7DQ0KICAgIGlmIChw
W2l4XT09J0EnKXsNDQogICAgICBlYXQoIkFORCIpOw0NCiAgICAgIHJldHVy
biBBbmQ7DQ0KICAgIH0NDQogICAgZWF0KCJPUiIpOw0NCiAgICByZXR1cm4g
T3I7DQ0KICB9DQ0KIA0NCiAgc3RhdGljIGJvb2xlYW4gcGFyc2VDb25kKCkN
DQogIHsNDQogICAgc2tpcFdTKCk7DQ0KICAgIGludCB2MSA9IHBhcnNlTWVt
b3J5KCk7DQ0KICAgIGludCB2MiA9IC05OTk7DQ0KICAgIHNraXBXUygpOw0N
Cg0NCiAgICBpbnQgb3AgPSAtMTsNDQoNDQogICAgaWYgKHBbaXhdPT0nPScp
ew0NCiAgICAgIG9wID0gRXF1YWw7DQ0KICAgICAgZWF0KCI9Iik7DQ0KICAg
IH0NDQogICAgZWxzZXsNDQogICAgICBlYXQoIiMiKTsNDQogICAgICBvcCA9
IE5vdEVxdWFsOw0NCiAgICB9DQ0KDQ0KICAgIHNraXBXUygpOw0NCg0NCiAg
ICBpZiAocFtpeF09PSdOJyl7DQ0KICAgICAgZWF0KCJOVUxMIik7DQ0KICAg
ICAgdjIgPSBOdWxsOw0NCiAgICB9DQ0KICAgIGVsc2UgdjIgPSBwYXJzZUNv
bW1hbmQoKTsNDQoNDQogICAgaWYgKG9wPT1FcXVhbCl7DQ0KICAgICAgcmV0
dXJuIHYxPT12MjsNDQogICAgfQ0NCiAgICByZXR1cm4gdjEhPXYyOw0NCiAg
fQ0NCg0NCiAgc3RhdGljIGludCBwYXJzZU1lbW9yeSgpDQ0KICB7DQ0KICAg
IHNraXBXUygpOw0NCg0NCiAgICBpbnQgd2hvOw0NCiAgICBpZiAocFtpeF09
PSdNJyl7DQ0KICAgICAgd2hvID0gbWU7DQ0KICAgICAgZWF0KCJNWSIpOw0N
CiAgICB9DQ0KICAgIGVsc2V7DQ0KICAgICAgd2hvID0geW91Ow0NCiAgICAg
IGVhdCgiWU9VUiIpOw0NCiAgICB9DQ0KDQ0KICAgIHNraXBXUygpOw0NCiAg
ICBpbnQgd2hlbjsNDQogICAgZWF0KCJMQVNUIik7DQ0KDQ0KICAgIHNraXBX
UygpOw0NCg0NCiAgICBpZiAocFtpeF09PScxJyl7DQ0KICAgICAgd2hlbiA9
IExhc3QxOw0NCiAgICAgIGVhdCgiMSIpOw0NCiAgICB9DQ0KICAgIGVsc2V7
DQ0KICAgICAgd2hlbiA9IExhc3QyOw0NCiAgICAgIGVhdCgiMiIpOw0NCiAg
ICB9DQ0KDQ0KICAgIHJldHVybiBvbGRbd2hvXVt3aGVuXTsgICAgDQ0KICB9
DQ0KICANDQp9DQ0K
---559023410-1254324197-980114310=:15683--

From judge@east.isx.com Sun Jan 21 17:08:56 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id RAA09179
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:08:55 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id QAA04714
	for <judge@east.isx.com>; Sun, 21 Jan 2001 16:59:18 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id QAA23009
	for judge@east.isx.com; Sun, 21 Jan 2001 16:59:17 -0500 (EST)
Date: Sun, 21 Jan 2001 16:59:16 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: strategy sol g++
Message-ID: <20010121165916.A22994@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="Dxnq1zWXvFF0Q93v"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 6666


--Dxnq1zWXvFF0Q93v
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline



-- 
-Brian McNamara (lorgon@cc.gatech.edu)

--Dxnq1zWXvFF0Q93v
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="strategy.cc"

#include <iostream>
#include <fstream>
#include <string>

istream* in;
ostream* out;

string input;
int pos;

char cur() {
   return input[pos];
}
char eat() {
cout << cur() << flush;
   return input[pos++];
}
void ws() {
   while( cur()==' ' || cur()=='\t' || cur()=='\n' )
      pos++;
}

//////////////////////////////////////////////////////////////////////
bool flag = false;  // true if "your" turn

typedef enum { T, C, N } What;
typedef enum {
   DOT, IF, THEN, ELSE, AND, OR, EQ, NE, NULL_, MY, YOUR,
   LAST, ONE, TWO, TRADE, CHEAT } Token;
string tokens[] = {
   ".", "IF", "THEN", "ELSE", "AND", "OR", "=", "#", "NULL", "MY", "YOUR",
   "LAST", "1", "2", "TRADE", "CHEAT" };

//////////////////////////////////////////////////////////////////////
What my[12];
What your[12];

int total;  //score
int count=0;  // num strats
int round;
class Exp;
Exp* strategies[20];
//////////////////////////////////////////////////////////////////////
struct Memory {
   Token who, which;
   Memory( Token a, Token b ) : who(a), which(b) {}
};
//////////////////////////////////////////////////////////////////////
struct Cond {
   virtual bool value()=0;
};
struct BoolCond : Cond {
   Token op;
   Cond *l, *r;
   BoolCond( Token a, Cond* b, Cond*c ) : op(a), l(b), r(c) {}
   bool value() {
      if( op==AND )   return l->value() && r->value();
      if( op==OR  )   return l->value() || r->value();
      throw "bad cond op";
   }
};
struct BasicCond : Cond {
   Memory m;
   Token equal, what;
   BasicCond( Memory a, Token b, Token c ) : m(a), equal(b), what(c) {}
   static int which(Token t) {
      if( t==ONE ) return 1;
      if( t==TWO ) return 2;
      throw "bad which()";
   }
   static What convert( Token t ) {
      if( t==TRADE ) return T;
      if( t==CHEAT ) return C;
      if( t==NULL_ ) return N;
      throw "bad convert";
   }
   static What v( Token who, int back ) {
      int x = round-back;
      if( who==MY ) 
         if( !flag )
            return my[x];
         else
            return your[x];
      else if( who==YOUR )
         if( !flag )
            return your[x];
         else
            return my[x];
      else throw "annoy";
   }
   bool value() {
      int back = which(m.which);
      What mem = v(m.who,back);
      What w = convert(what);
      bool yes = mem==w;
      if( equal==EQ ) return yes;
      if( equal==NE ) return !yes;
      throw "bad equal";
   }
};
//////////////////////////////////////////////////////////////////////
struct Exp {
   virtual What eval()=0;
};
struct Command : Exp {
   Token t;
   Command(Token a) : t(a) {}
   What eval() {
      if( t==TRADE ) return T;
      if( t==CHEAT ) return C;
      throw "bad command";
   }
};
struct If : Exp {
   Cond *c;
   Exp *t, *e;
   If( Cond*x, Exp*y,Exp*z) : c(x), t(y), e(z) {}
   What eval() {
      if( c->value() )    return t->eval();
      else                return e->eval();
   }
};
//////////////////////////////////////////////////////////////////////
Token peek() {
   ws();
   switch( cur() ) {
      case '.': return DOT;
      case 'I': return IF;
      case 'T': if( input[pos+1]=='H') return THEN; return TRADE;
      case 'E': return ELSE;
      case 'A': return AND;
      case 'O': return OR;
      case '=': return EQ;
      case '#': return NE;
      case 'N': return NULL_;
      case 'M': return MY;
      case 'Y': return YOUR;
      case 'L': return LAST;
      case '1': return ONE;
      case '2': return TWO;
      case 'C': return CHEAT;
   }
   throw "bad peek";
}
void eat( string s ) {
   for( unsigned i=0; i<s.length(); i++ ) {
      char c = eat();
      if( c != s[i] ) throw "bad eat string";
   }
}
Token tok() {
   Token t = peek();
   eat( tokens[t] );
   return t;
}
Token tok( Token t ) {
   Token u = tok();
   if( t!=u ) throw "unexpected token";
   return t;
}
//////////////////////////////////////////////////////////////////////
Exp* command() {
   Token t = tok();
   if( t==TRADE ) return new Command(t);
   if( t==CHEAT ) return new Command(t);
   throw "command() bad";
}
Memory memory() {
   Token who = tok();
   tok(LAST);
   Token which = tok();
   return Memory(who,which);
}
Cond* cond() {
   Memory m = memory();
   Token t = tok();
   Token c = tok();
   return new BasicCond(m,t,c);
}
Cond* condition() {
   Cond*c = cond();
   if( peek()==AND  ||  peek()==OR ) {
      Token t = tok();
      Cond*d = condition();
      c = new BoolCond(t,c,d);
   }
   return c;
}
Exp* stmt();
Exp* ifstmt() {
   tok(IF);
   Cond* c = condition();
   tok(THEN);
   Exp*e1 = stmt();
   tok(ELSE);
   Exp*e2 = stmt();
   return new If(c,e1,e2);
}
Exp* stmt() {
   if( peek()==TRADE || peek()==CHEAT )  return command();
   return ifstmt();
}
Exp* program() {
   Exp* e = stmt();
   tok(DOT);
   return e;
}
//////////////////////////////////////////////////////////////////////

void compute() {
   for( int i=2; i<12; i++ ) {
           if( my[i]==T && your[i]==T )     total += 1;
      else if( my[i]==C && your[i]==T )     total += 2;
      else if( my[i]==T && your[i]==C )     total -= 2;
      else if( my[i]==C && your[i]==C )     total -= 1;
      else throw "bad choice";
   }
}

ostream& operator<<( ostream& o, What w ) {
   if( w==T ) o << 'T';
   if( w==C ) o << 'C';
   if( w==N ) o << 'N';
   return o;
}

void pit( int me, int opp ) {
cout << endl << "pitting " << me << " against " << opp << endl;
cout << "me  them" << endl;
   for( round=2; round<12; round++ ) {

      my[round] = strategies[me]->eval();

      flag = true;
      your[round] = strategies[opp]->eval();
      flag = false;


cout << my[round] << "   " << your[round] << endl;
   }
   compute();
cout << "total so far is " << total;
}

void go( int who ) {
   total = 0;
   for( int i=0; i<count; i++ )
      if( i != who ) 
         pit( who, i );
}

void score() {
   *out << total << endl;
}

void go() {
   for( int i=0; i<count; i++ ) {
      go(i);
      score();
   }
}

int main() {
   pos = 0;
   string s;
   ifstream iii("strategy.in");
   ofstream ooo("strategy.out");
   in = &iii;
   out= &ooo;

   while( *in ) {
      getline( *in, s );
      input += s;
      input += '\n';     
   }

   try {
      my[0]=my[1]=your[0]=your[1]=N;
      for(;;) {
         if( peek()==NE ) break;
         strategies[count++] = program();
      }
      go();
   }
   catch( char *s ) {
      cout << "err: " << s << endl;
   }
}

--Dxnq1zWXvFF0Q93v--

From judge@east.isx.com Sun Jan 21 17:30:07 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id RAA09948
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:30:06 -0500 (EST)
Received: from felix.cc.gatech.edu (felix.cc.gatech.edu [130.207.107.11])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id RAA05509
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:20:30 -0500 (EST)
Received: from localhost (dminn@localhost)
	by felix.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id RAA22821
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:20:29 -0500 (EST)
Date: Sun, 21 Jan 2001 17:20:29 -0500 (EST)
From: "David C. Minnen" <dminn@cc.gatech.edu>
To: judge@east.isx.com
Subject: Keywords
Message-ID: <Pine.SOL.4.21.0101211720050.15683-200000@felix.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-824023566-980115629=:15683"
Content-Length: 5395

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-824023566-980115629=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII



 david


---559023410-824023566-980115629=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="keywords.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211720290.15683@felix.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="keywords.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KcHVi
bGljIGNsYXNzIGtleXdvcmRzDQ0Kew0NCiAgcHVibGljIHN0YXRpYyB2b2lk
IG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIElPRXhjZXB0aW9uDQ0KICB7
DQ0KICAgIEJ1ZmZlcmVkUmVhZGVyIGJpbiA9IG5ldyBCdWZmZXJlZFJlYWRl
cihuZXcgRmlsZVJlYWRlcigia2V5d29yZHMuaW4iKSk7DQ0KICAgIFByaW50
V3JpdGVyIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgRmlsZVdyaXRlcigi
a2V5d29yZHMub3V0IikpOw0NCiAgICBWZWN0b3IgcHJvZmlsZXMgPSBuZXcg
VmVjdG9yKCk7DQ0KICAgIFZlY3RvciB0aXRsZXMgPSBuZXcgVmVjdG9yKCk7
DQ0KICAgIFN0cmluZyBhID0gYmluLnJlYWRMaW5lKCk7DQ0KICAgIHdoaWxl
KCEoYS5lcXVhbHMoIiMiKSkpDQ0KICAgICAgew0NCglpZihhLmNoYXJBdCgw
KT09J1AnKQ0NCgkgIHByb2ZpbGVzLmFkZChhLnRvTG93ZXJDYXNlKCkuc3Vi
c3RyaW5nKDIpKTsNDQoJaWYoYS5jaGFyQXQoMCk9PSdUJykNDQoJICB0aXRs
ZXMuYWRkKGEudG9Mb3dlckNhc2UoKSk7DQ0KCWlmKGEuY2hhckF0KDApPT0n
ICcpDQ0KCSAgew0NCgkgICAgU3RyaW5nIHQgPSAoU3RyaW5nKXRpdGxlcy5s
YXN0RWxlbWVudCgpOw0NCgkgICAgdCA9IHQgKyBhLnRvTG93ZXJDYXNlKCk7
DQ0KCSAgICB0aXRsZXMuc2V0RWxlbWVudEF0KHQsIHRpdGxlcy5zaXplKCkt
MSk7DQ0KCSAgfQ0NCglhID0gYmluLnJlYWRMaW5lKCk7DQ0KICAgICAgfQ0N
Cg0NCi8vZm9yKGludCBpPTA7aTxwcm9maWxlcy5zaXplKCk7aSsrKQ0NCi8v
ICBTeXN0ZW0ub3V0LnByaW50bG4ocHJvZmlsZXMuZWxlbWVudEF0KGkpKTsN
DQovL2ZvcihpbnQgaT0wO2k8dGl0bGVzLnNpemUoKTtpKyspDQ0KLy8gIFN5
c3RlbS5vdXQucHJpbnRsbih0aXRsZXMuZWxlbWVudEF0KGkpKTsNDQoNDQog
ICAgZm9yKGludCBpPTA7aTx0aXRsZXMuc2l6ZSgpO2krKykNDQogICAgICB7
DQ0KCVN0cmluZyB0ID0gbmV3IFN0cmluZygpOw0NCglTdHJpbmcgY3VyID0g
KFN0cmluZyl0aXRsZXMuZWxlbWVudEF0KGkpOw0NCglmb3IoaW50IGo9Mjtq
PGN1ci5sZW5ndGgoKTtqKyspDQ0KCSAgew0NCgkgICAgaWYoQ2hhcmFjdGVy
LmlzTGV0dGVyKGN1ci5jaGFyQXQoaikpIHx8IGN1ci5jaGFyQXQoaik9PScg
JykNDQoJICAgICAgdCs9Y3VyLnN1YnN0cmluZyhqLGorMSk7DQ0KCSAgfQ0N
Cgl0aXRsZXMuc2V0RWxlbWVudEF0KHQsIGkpOw0NCiAgICAgIH0NDQoNDQov
L2ZvcihpbnQgaT0wO2k8dGl0bGVzLnNpemUoKTtpKyspDQ0KLy9TeXN0ZW0u
b3V0LnByaW50bG4odGl0bGVzLmVsZW1lbnRBdChpKSk7DQ0KICAgIGJvb2xl
YW4gbWF0Y2g9ZmFsc2U7IGJvb2xlYW4gZmlyc3R0aW1lPXRydWU7IA0NCiAg
ICBmb3IoaW50IGk9MDtpPHByb2ZpbGVzLnNpemUoKTtpKyspDQ0KICAgICAg
ew0NCglmaXJzdHRpbWUgPSB0cnVlOw0NCglTdHJpbmdUb2tlbml6ZXIgc3Rw
ID0gbmV3IFN0cmluZ1Rva2VuaXplcigoU3RyaW5nKXByb2ZpbGVzLmVsZW1l
bnRBdChpKSk7DQ0KCVZlY3RvciBQVyA9IG5ldyBWZWN0b3IoKTsNDQoJaW50
IG51bSA9IEludGVnZXIucGFyc2VJbnQoc3RwLm5leHRUb2tlbigpKTsNDQoJ
d2hpbGUoc3RwLmhhc01vcmVUb2tlbnMoKSkNDQoJICAgIFBXLmFkZChzdHAu
bmV4dFRva2VuKCkpOw0NCglvdXQucHJpbnQoKGkrMSkgKyAiOiIpOw0NCglm
b3IoaW50IGo9MDtqPHRpdGxlcy5zaXplKCk7aisrKQ0NCgkgIHsNDQoJICAg
IFN0cmluZ1Rva2VuaXplciBzdHQgPSBuZXcgU3RyaW5nVG9rZW5pemVyKChT
dHJpbmcpdGl0bGVzLmVsZW1lbnRBdChqKSk7DQ0KCSAgICBWZWN0b3IgVFcg
PSBuZXcgVmVjdG9yKCk7DQ0KCSAgICB3aGlsZShzdHQuaGFzTW9yZVRva2Vu
cygpKQ0NCgkgICAgICB7DQ0KCQlUVy5hZGQoc3R0Lm5leHRUb2tlbigpKTsJ
ICAgIA0NCgkgICAgICB9DQ0KCSAgICBWZWN0b3IgUFdQb3MgPSBuZXcgVmVj
dG9yKCk7DQ0KCSAgICBmb3IoaW50IGs9MDtrPFBXLnNpemUoKTtrKyspDQ0K
CSAgICAgIHsNDQoJCVN0cmluZyBwd29yZCA9IChTdHJpbmcpUFcuZWxlbWVu
dEF0KGspOw0NCgkJU3RyaW5nIHBvc2l0aW9ucyA9IG5ldyBTdHJpbmcoKTsN
DQoJCWZvcihpbnQgbD0wO2w8VFcuc2l6ZSgpO2wrKykNDQoJCSAgew0NCgkJ
ICAgIFN0cmluZyB0d29yZCA9IChTdHJpbmcpVFcuZWxlbWVudEF0KGwpOw0N
CgkJICAgIGlmKHB3b3JkLmVxdWFscyh0d29yZCkpDQ0KCQkgICAgICBwb3Np
dGlvbnMrPVN0cmluZy52YWx1ZU9mKGwpKyAiICI7DQ0KCQkgIH0NDQoJCVBX
UG9zLmFkZChwb3NpdGlvbnMpOw0NCgkJLy9TeXN0ZW0ub3V0LnByaW50bG4o
UFcuZWxlbWVudEF0KGspICsgIiAgIDogICAiICsgcG9zaXRpb25zKTsNDQoJ
ICAgICAgfQ0NCgkgICAgbWF0Y2ggPSBmYWxzZTsNDQoJICAgIC8vCSAgICBT
eXN0ZW0ub3V0LnByaW50bG4oIkVudGVyaW5nIG0gbG9vcCIpOw0NCgkgICAg
Zm9yKGludCBtPTA7bTxQV1Bvcy5zaXplKCk7bSsrKQ0NCgkgICAgICB7DQ0K
CQlTdHJpbmdUb2tlbml6ZXIgc3RlbXAgPSBuZXcgU3RyaW5nVG9rZW5pemVy
KChTdHJpbmcpUFdQb3MuZWxlbWVudEF0KG0pKTsNDQoJCXdoaWxlKHN0ZW1w
Lmhhc01vcmVUb2tlbnMoKSAmJiBtYXRjaCA9PSBmYWxzZSkNDQoJCSAgew0N
CgkJICAgIGludCBwb3MgPSBJbnRlZ2VyLnBhcnNlSW50KHN0ZW1wLm5leHRU
b2tlbigpKTsNDQoJCSAgICBmb3IoaW50IG49MDtuPFBXUG9zLnNpemUoKTtu
KyspDQ0KCQkgICAgICB7DQ0KCQkJaWYobSE9bikNDQoJCQkgIHsNDQoJCQkg
ICAgU3RyaW5nVG9rZW5pemVyIHN0ZW1wMiA9IG5ldyBTdHJpbmdUb2tlbml6
ZXIoKFN0cmluZylQV1Bvcy5lbGVtZW50QXQobikpOw0NCgkJCSAgICB3aGls
ZShzdGVtcDIuaGFzTW9yZVRva2VucygpICYmIG1hdGNoPT1mYWxzZSkNDQoJ
CQkgICAgICB7DQ0KCQkJCWludCBwb3MyID0gSW50ZWdlci5wYXJzZUludChz
dGVtcDIubmV4dFRva2VuKCkpOw0NCgkJCQkvLwkJU3lzdGVtLm91dC5wcmlu
dGxuKCJDaGVja2luZyAiICsgcG9zICsgIiBhbmQgIiArIHBvczIpOw0NCgkJ
CQlpZihNYXRoLmFicyhwb3MtcG9zMik8PShudW0rMSkpDQ0KCQkJCSAgew0N
CgkJCQkgICAgbWF0Y2ggPSB0cnVlOw0NCgkJCQkgIH0NDQoJCQkgICAgICB9
DQ0KCQkJICB9DQ0KCQkgICAgICB9DQ0KCQkgIH0NDQoJCWlmKG1hdGNoKQ0N
CgkJICBicmVhazsNDQoJICAgICAgfQ0NCgkgICAgCWlmKG1hdGNoKQ0NCgkJ
ICB7DQ0KCQkgICAgaWYoZmlyc3R0aW1lKQ0NCgkJICAgICAgew0NCgkJCW91
dC5wcmludCgiICIgKyAoaisxKSk7CQkgICAgDQ0KCQkJZmlyc3R0aW1lPWZh
bHNlOw0NCgkJICAgICAgfQ0NCgkJICAgIGVsc2UNDQoJCSAgICAgIHsNDQoJ
CQlvdXQucHJpbnQoIiwiICsgKGorMSkpOw0NCgkJICAgICAgfQ0NCgkJICB9
DQ0KCSAgfQ0NCglvdXQucHJpbnRsbigpOw0NCiAgICAgIH0NDQogICAgb3V0
LmNsb3NlKCk7DQ0KICAgIGJpbi5jbG9zZSgpOw0NCiAgfQ0NCn0NDQo=
---559023410-824023566-980115629=:15683--

From judge@east.isx.com Sun Jan 21 17:40:56 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id RAA10399
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:40:54 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id RAA05840
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:31:18 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id RAA23619
	for judge@east.isx.com; Sun, 21 Jan 2001 17:31:17 -0500 (EST)
Date: Sun, 21 Jan 2001 17:31:17 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: strategfy g++ sol
Message-ID: <20010121173117.A23588@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="RnlQjJ0d97Da+TV1"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 6895


--RnlQjJ0d97Da+TV1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline



-- 
-Brian McNamara (lorgon@cc.gatech.edu)

--RnlQjJ0d97Da+TV1
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="strategy.cc"

#include <iostream>
#include <fstream>
#include <string>
#include <strstream>

istream* in;
ostream* out;

string input;
int pos;

char cur() {
   return input[pos];
}
char eat() {
cout << cur() << flush;
   return input[pos++];
}
void ws() {
   while( cur()==' ' || cur()=='\t' || cur()=='\n' )
      pos++;
}

//////////////////////////////////////////////////////////////////////
bool flag = false;  // true if "your" turn

typedef enum { T, C, N } What;
typedef enum {
   DOT, IF, THEN, ELSE, AND, OR, EQ, NE, NULL_, MY, YOUR,
   LAST, ONE, TWO, TRADE, CHEAT } Token;
string tokens[] = {
   ".", "IF", "THEN", "ELSE", "AND", "OR", "=", "#", "NULL", "MY", "YOUR",
   "LAST", "1", "2", "TRADE", "CHEAT" };

//////////////////////////////////////////////////////////////////////
What my[12];
What your[12];

int total;  //score
int count=0;  // num strats
int round;
class Exp;
Exp* strategies[20];
//////////////////////////////////////////////////////////////////////
struct Memory {
   Token who, which;
   Memory( Token a, Token b ) : who(a), which(b) {}
};
//////////////////////////////////////////////////////////////////////
struct Cond {
   virtual bool value()=0;
};
struct BoolCond : Cond {
   Token op;
   Cond *l, *r;
   BoolCond( Token a, Cond* b, Cond*c ) : op(a), l(b), r(c) {}
   bool value() {
      if( op==AND )   return l->value() && r->value();
      if( op==OR  )   return l->value() || r->value();
      throw "bad cond op";
   }
};
struct BasicCond : Cond {
   Memory m;
   Token equal, what;
   BasicCond( Memory a, Token b, Token c ) : m(a), equal(b), what(c) {}
   static int which(Token t) {
      if( t==ONE ) return 1;
      if( t==TWO ) return 2;
      throw "bad which()";
   }
   static What convert( Token t ) {
      if( t==TRADE ) return T;
      if( t==CHEAT ) return C;
      if( t==NULL_ ) return N;
      throw "bad convert";
   }
   static What v( Token who, int back ) {
      int x = round-back;
      if( who==MY ) 
         if( !flag )
            return my[x];
         else
            return your[x];
      else if( who==YOUR )
         if( !flag )
            return your[x];
         else
            return my[x];
      else throw "annoy";
   }
   bool value() {
      int back = which(m.which);
      What mem = v(m.who,back);
      What w = convert(what);
      bool yes = mem==w;
      if( equal==EQ ) return yes;
      if( equal==NE ) return !yes;
      throw "bad equal";
   }
};
//////////////////////////////////////////////////////////////////////
struct Exp {
   virtual What eval()=0;
};
struct Command : Exp {
   Token t;
   Command(Token a) : t(a) {}
   What eval() {
      if( t==TRADE ) return T;
      if( t==CHEAT ) return C;
      throw "bad command";
   }
};
struct If : Exp {
   Cond *c;
   Exp *t, *e;
   If( Cond*x, Exp*y,Exp*z) : c(x), t(y), e(z) {}
   What eval() {
      if( c->value() )    return t->eval();
      else                return e->eval();
   }
};
//////////////////////////////////////////////////////////////////////
Token peek() {
   ws();
   switch( cur() ) {
      case '.': return DOT;
      case 'I': return IF;
      case 'T': if( input[pos+1]=='H') return THEN; return TRADE;
      case 'E': return ELSE;
      case 'A': return AND;
      case 'O': return OR;
      case '=': return EQ;
      case '#': return NE;
      case 'N': return NULL_;
      case 'M': return MY;
      case 'Y': return YOUR;
      case 'L': return LAST;
      case '1': return ONE;
      case '2': return TWO;
      case 'C': return CHEAT;
   }
   throw "bad peek";
}
void eat( string s ) {
   for( unsigned i=0; i<s.length(); i++ ) {
      char c = eat();
      if( c != s[i] ) throw "bad eat string";
   }
}
Token tok() {
   Token t = peek();
   eat( tokens[t] );
   return t;
}
Token tok( Token t ) {
   Token u = tok();
   if( t!=u ) throw "unexpected token";
   return t;
}
//////////////////////////////////////////////////////////////////////
Exp* command() {
   Token t = tok();
   if( t==TRADE ) return new Command(t);
   if( t==CHEAT ) return new Command(t);
   throw "command() bad";
}
Memory memory() {
   Token who = tok();
   tok(LAST);
   Token which = tok();
   return Memory(who,which);
}
Cond* cond() {
   Memory m = memory();
   Token t = tok();
   Token c = tok();
   return new BasicCond(m,t,c);
}
Cond* condition() {
   Cond*c = cond();
   if( peek()==AND  ||  peek()==OR ) {
      Token t = tok();
      Cond*d = condition();
      c = new BoolCond(t,c,d);
   }
   return c;
}
Exp* stmt();
Exp* ifstmt() {
   tok(IF);
   Cond* c = condition();
   tok(THEN);
   Exp*e1 = stmt();
   tok(ELSE);
   Exp*e2 = stmt();
   return new If(c,e1,e2);
}
Exp* stmt() {
   if( peek()==TRADE || peek()==CHEAT )  return command();
   return ifstmt();
}
Exp* program() {
   Exp* e = stmt();
   tok(DOT);
   return e;
}
//////////////////////////////////////////////////////////////////////

void compute() {
   for( int i=2; i<12; i++ ) {
           if( my[i]==T && your[i]==T )     total += 1;
      else if( my[i]==C && your[i]==T )     total += 2;
      else if( my[i]==T && your[i]==C )     total -= 2;
      else if( my[i]==C && your[i]==C )     total -= 1;
      else throw "bad choice";
   }
}

ostream& operator<<( ostream& o, What w ) {
   if( w==T ) o << 'T';
   if( w==C ) o << 'C';
   if( w==N ) o << 'N';
   return o;
}

void pit( int me, int opp ) {
cout << endl << "pitting " << me << " against " << opp << endl;
cout << "me  them" << endl;
   for( round=2; round<12; round++ ) {

      my[round] = strategies[me]->eval();

      flag = true;
      your[round] = strategies[opp]->eval();
      flag = false;


cout << my[round] << "   " << your[round] << endl;
   }
   compute();
cout << "total so far is " << total;
}

void go( int who ) {
   total = 0;
   for( int i=0; i<count; i++ )
      if( i != who ) 
         pit( who, i );
}

string toString( int x ) {
   strstream oss;
   oss << x << ends;
   string s = oss.str();
   return s;
}

string pad( string s ) {
   while( s.length() < 3 ) 
      s = " "+s;
   return s;
}

void score() {
   *out << pad(toString(total)) << endl;
}

void go() {
   for( int i=0; i<count; i++ ) {
      go(i);
      score();
   }
}

int main() {
   pos = 0;
   string s;
   ifstream iii("strategy.in");
   ofstream ooo("strategy.out");
   in = &iii;
   out= &ooo;

   while( *in ) {
      getline( *in, s );
      input += s;
      input += '\n';     
   }

   try {
      my[0]=my[1]=your[0]=your[1]=N;
      for(;;) {
         if( peek()==NE ) break;
         strategies[count++] = program();
      }
      go();
   }
   catch( char *s ) {
      cout << "err: " << s << endl;
   }
}

--RnlQjJ0d97Da+TV1--

From judge@east.isx.com Sun Jan 21 17:42:44 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id RAA10407
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:42:42 -0500 (EST)
Received: from felix.cc.gatech.edu (felix.cc.gatech.edu [130.207.107.11])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id RAA05916
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:33:06 -0500 (EST)
Received: from localhost (dminn@localhost)
	by felix.cc.gatech.edu (8.9.3+Sun/8.9.1) with ESMTP id RAA23039
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:33:06 -0500 (EST)
Date: Sun, 21 Jan 2001 17:33:06 -0500 (EST)
From: "David C. Minnen" <dminn@cc.gatech.edu>
To: judge@east.isx.com
Message-ID: <Pine.SOL.4.21.0101211732370.15683-200000@felix.cc.gatech.edu>
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-1932422408-980116386=:15683"
Content-Length: 5431

  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

---559023410-1932422408-980116386=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII



 david


---559023410-1932422408-980116386=:15683
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="keywords.java"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.SOL.4.21.0101211733060.15683@felix.cc.gatech.edu>
Content-Description: 
Content-Disposition: attachment; filename="keywords.java"

aW1wb3J0IGphdmEuaW8uKjsNDQppbXBvcnQgamF2YS51dGlsLio7DQ0KcHVi
bGljIGNsYXNzIGtleXdvcmRzDQ0Kew0NCiAgcHVibGljIHN0YXRpYyB2b2lk
IG1haW4oU3RyaW5nIGFyZ3NbXSkgdGhyb3dzIElPRXhjZXB0aW9uDQ0KICB7
DQ0KICAgIEJ1ZmZlcmVkUmVhZGVyIGJpbiA9IG5ldyBCdWZmZXJlZFJlYWRl
cihuZXcgRmlsZVJlYWRlcigia2V5d29yZHMuaW4iKSk7DQ0KICAgIFByaW50
V3JpdGVyIG91dCA9IG5ldyBQcmludFdyaXRlcihuZXcgRmlsZVdyaXRlcigi
a2V5d29yZHMub3V0IikpOw0NCiAgICBWZWN0b3IgcHJvZmlsZXMgPSBuZXcg
VmVjdG9yKCk7DQ0KICAgIFZlY3RvciB0aXRsZXMgPSBuZXcgVmVjdG9yKCk7
DQ0KICAgIFN0cmluZyBhID0gYmluLnJlYWRMaW5lKCk7DQ0KICAgIHdoaWxl
KCEoYS5lcXVhbHMoIiMiKSkpDQ0KICAgICAgew0NCglpZihhLmNoYXJBdCgw
KT09J1AnKQ0NCgkgIHByb2ZpbGVzLmFkZChhLnRvTG93ZXJDYXNlKCkuc3Vi
c3RyaW5nKDIpKTsNDQoJaWYoYS5jaGFyQXQoMCk9PSdUJykNDQoJICB0aXRs
ZXMuYWRkKGEudG9Mb3dlckNhc2UoKSk7DQ0KCWlmKGEuY2hhckF0KDApPT0n
ICcpDQ0KCSAgew0NCgkgICAgU3RyaW5nIHQgPSAoU3RyaW5nKXRpdGxlcy5s
YXN0RWxlbWVudCgpOw0NCgkgICAgdCA9IHQgKyBhLnRvTG93ZXJDYXNlKCk7
DQ0KCSAgICB0aXRsZXMuc2V0RWxlbWVudEF0KHQsIHRpdGxlcy5zaXplKCkt
MSk7DQ0KCSAgfQ0NCglhID0gYmluLnJlYWRMaW5lKCk7DQ0KICAgICAgfQ0N
Cg0NCi8vZm9yKGludCBpPTA7aTxwcm9maWxlcy5zaXplKCk7aSsrKQ0NCi8v
ICBTeXN0ZW0ub3V0LnByaW50bG4ocHJvZmlsZXMuZWxlbWVudEF0KGkpKTsN
DQovL2ZvcihpbnQgaT0wO2k8dGl0bGVzLnNpemUoKTtpKyspDQ0KLy8gIFN5
c3RlbS5vdXQucHJpbnRsbih0aXRsZXMuZWxlbWVudEF0KGkpKTsNDQoNDQog
ICAgZm9yKGludCBpPTA7aTx0aXRsZXMuc2l6ZSgpO2krKykNDQogICAgICB7
DQ0KCVN0cmluZyB0ID0gbmV3IFN0cmluZygpOw0NCglTdHJpbmcgY3VyID0g
KFN0cmluZyl0aXRsZXMuZWxlbWVudEF0KGkpOw0NCglmb3IoaW50IGo9Mjtq
PGN1ci5sZW5ndGgoKTtqKyspDQ0KCSAgew0NCgkgICAgaWYoQ2hhcmFjdGVy
LmlzTGV0dGVyKGN1ci5jaGFyQXQoaikpIHx8IGN1ci5jaGFyQXQoaik9PScg
JykNDQoJICAgICAgdCs9Y3VyLnN1YnN0cmluZyhqLGorMSk7DQ0KCSAgfQ0N
Cgl0aXRsZXMuc2V0RWxlbWVudEF0KHQsIGkpOw0NCiAgICAgIH0NDQoNDQov
L2ZvcihpbnQgaT0wO2k8dGl0bGVzLnNpemUoKTtpKyspDQ0KLy9TeXN0ZW0u
b3V0LnByaW50bG4odGl0bGVzLmVsZW1lbnRBdChpKSk7DQ0KICAgIGJvb2xl
YW4gbWF0Y2g9ZmFsc2U7IGJvb2xlYW4gZmlyc3R0aW1lPXRydWU7IA0NCiAg
ICBmb3IoaW50IGk9MDtpPHByb2ZpbGVzLnNpemUoKTtpKyspDQ0KICAgICAg
ew0NCglmaXJzdHRpbWUgPSB0cnVlOw0NCglTdHJpbmdUb2tlbml6ZXIgc3Rw
ID0gbmV3IFN0cmluZ1Rva2VuaXplcigoU3RyaW5nKXByb2ZpbGVzLmVsZW1l
bnRBdChpKSk7DQ0KCVZlY3RvciBQVyA9IG5ldyBWZWN0b3IoKTsNDQoJaW50
IG51bSA9IEludGVnZXIucGFyc2VJbnQoc3RwLm5leHRUb2tlbigpKTsNDQoJ
d2hpbGUoc3RwLmhhc01vcmVUb2tlbnMoKSkNDQoJICAgIFBXLmFkZChzdHAu
bmV4dFRva2VuKCkpOw0NCglvdXQucHJpbnQoKGkrMSkgKyAiOiIpOw0NCglm
b3IoaW50IGo9MDtqPHRpdGxlcy5zaXplKCk7aisrKQ0NCgkgIHsNDQoJICAg
IFN0cmluZ1Rva2VuaXplciBzdHQgPSBuZXcgU3RyaW5nVG9rZW5pemVyKChT
dHJpbmcpdGl0bGVzLmVsZW1lbnRBdChqKSk7DQ0KCSAgICBWZWN0b3IgVFcg
PSBuZXcgVmVjdG9yKCk7DQ0KCSAgICB3aGlsZShzdHQuaGFzTW9yZVRva2Vu
cygpKQ0NCgkgICAgICB7DQ0KCQlUVy5hZGQoc3R0Lm5leHRUb2tlbigpKTsJ
ICAgIA0NCgkgICAgICB9DQ0KCSAgICBWZWN0b3IgUFdQb3MgPSBuZXcgVmVj
dG9yKCk7DQ0KCSAgICBmb3IoaW50IGs9MDtrPFBXLnNpemUoKTtrKyspDQ0K
CSAgICAgIHsNDQoJCVN0cmluZyBwd29yZCA9IChTdHJpbmcpUFcuZWxlbWVu
dEF0KGspOw0NCgkJU3RyaW5nIHBvc2l0aW9ucyA9IG5ldyBTdHJpbmcoKTsN
DQoJCWZvcihpbnQgbD0wO2w8VFcuc2l6ZSgpO2wrKykNDQoJCSAgew0NCgkJ
ICAgIFN0cmluZyB0d29yZCA9IChTdHJpbmcpVFcuZWxlbWVudEF0KGwpOw0N
CgkJICAgIGlmKHB3b3JkLmVxdWFscyh0d29yZCkpDQ0KCQkgICAgICBwb3Np
dGlvbnMrPVN0cmluZy52YWx1ZU9mKGwpKyAiICI7DQ0KCQkgIH0NDQoJCVBX
UG9zLmFkZChwb3NpdGlvbnMpOw0NCgkJLy9TeXN0ZW0ub3V0LnByaW50bG4o
UFcuZWxlbWVudEF0KGspICsgIiAgIDogICAiICsgcG9zaXRpb25zKTsNDQoJ
ICAgICAgfQ0NCgkgICAgbWF0Y2ggPSBmYWxzZTsNDQoJICAgIC8vCSAgICBT
eXN0ZW0ub3V0LnByaW50bG4oIkVudGVyaW5nIG0gbG9vcCIpOw0NCgkgICAg
Zm9yKGludCBtPTA7bTxQV1Bvcy5zaXplKCk7bSsrKQ0NCgkgICAgICB7DQ0K
CQlTdHJpbmdUb2tlbml6ZXIgc3RlbXAgPSBuZXcgU3RyaW5nVG9rZW5pemVy
KChTdHJpbmcpUFdQb3MuZWxlbWVudEF0KG0pKTsNDQoJCXdoaWxlKHN0ZW1w
Lmhhc01vcmVUb2tlbnMoKSAmJiBtYXRjaCA9PSBmYWxzZSkNDQoJCSAgew0N
CgkJICAgIGludCBwb3MgPSBJbnRlZ2VyLnBhcnNlSW50KHN0ZW1wLm5leHRU
b2tlbigpKTsNDQoJCSAgICBmb3IoaW50IG49MDtuPFBXUG9zLnNpemUoKTtu
KyspDQ0KCQkgICAgICB7DQ0KCQkJaWYobSE9bikNDQoJCQkgIHsNDQoJCQkg
ICAgU3RyaW5nVG9rZW5pemVyIHN0ZW1wMiA9IG5ldyBTdHJpbmdUb2tlbml6
ZXIoKFN0cmluZylQV1Bvcy5lbGVtZW50QXQobikpOw0NCgkJCSAgICB3aGls
ZShzdGVtcDIuaGFzTW9yZVRva2VucygpICYmIG1hdGNoPT1mYWxzZSkNDQoJ
CQkgICAgICB7DQ0KCQkJCWludCBwb3MyID0gSW50ZWdlci5wYXJzZUludChz
dGVtcDIubmV4dFRva2VuKCkpOw0NCgkJCQkvLwkJU3lzdGVtLm91dC5wcmlu
dGxuKCJDaGVja2luZyAiICsgcG9zICsgIiBhbmQgIiArIHBvczIpOwkJCSAg
ICAgIA0NCgkJCQlpZihNYXRoLmFicyhwb3MtcG9zMik8PShudW0rMSkgJiYg
KHBvcyE9cG9zMikpDQ0KCQkJCSAgew0NCgkJCQkgICAgbWF0Y2ggPSB0cnVl
Ow0NCgkJCQkgIH0NDQoJCQkgICAgICB9DQ0KCQkJICB9DQ0KCQkgICAgICB9
DQ0KCQkgIH0NDQoJCWlmKG1hdGNoKQ0NCgkJICBicmVhazsNDQoJICAgICAg
fQ0NCgkgICAgCWlmKG1hdGNoKQ0NCgkJICB7DQ0KCQkgICAgaWYoZmlyc3R0
aW1lKQ0NCgkJICAgICAgew0NCgkJCW91dC5wcmludCgiICIgKyAoaisxKSk7
CQkgICAgDQ0KCQkJZmlyc3R0aW1lPWZhbHNlOw0NCgkJICAgICAgfQ0NCgkJ
ICAgIGVsc2UNDQoJCSAgICAgIHsNDQoJCQlvdXQucHJpbnQoIiwiICsgKGor
MSkpOw0NCgkJICAgICAgfQ0NCgkJICB9DQ0KCSAgfQ0NCglvdXQucHJpbnRs
bigpOw0NCiAgICAgIH0NDQogICAgb3V0LmNsb3NlKCk7DQ0KICAgIGJpbi5j
bG9zZSgpOw0NCiAgfQ0NCn0NDQo=
---559023410-1932422408-980116386=:15683--

From judge@east.isx.com Sun Jan 21 17:56:53 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id RAA10704
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:56:52 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id RAA06598
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:47:17 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id RAA24053
	for judge@east.isx.com; Sun, 21 Jan 2001 17:47:16 -0500 (EST)
Date: Sun, 21 Jan 2001 17:47:15 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: calc java
Message-ID: <20010121174715.A24042@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="qMm9M+Fa2AknHoGS"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 3610


--qMm9M+Fa2AknHoGS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline



-- 
-Brian McNamara (lorgon@cc.gatech.edu)

--qMm9M+Fa2AknHoGS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="calculator.java"

import java.io.*;
import java.util.*;

public class calculator {

public static boolean[] dirty;
public static int[] Var;


public static String reduce (String str) {

int i, open = -1, memVal, Val1, Val2;
String op1, op2, oper, t, result;


System.out.println("Str is: " + str);

//do parens
for (i=0; i < str.length(); i++) {
	if (str.charAt(i) == '(') open = i;
	if (str.charAt(i) == ')') {
		str = str.substring(0, open) 
			+ reduce(str.substring(open + 1,i)) 
			+ str.substring(i+1);
	i=0;
	} // end if
} // end for


// no parens left


StringTokenizer st = new StringTokenizer(str, "*=+-/", true);
op1 = st.nextToken();

if (st.hasMoreTokens() == false) return str;
oper = st.nextToken();
op2 = st.nextToken();

op1 = op1.trim();
op2 = op2.trim();
oper = oper.trim();

if (st.hasMoreTokens()) {
	t = "";
	while(st.hasMoreTokens()) t += st.nextToken();
	return reduce(op1 + oper + reduce(op2 + t));
}

if (op1.charAt(0) >= 'A' && op1.charAt(0) <= 'Z') {
	memVal = (int) (op1.charAt(0) - 'A');
	Val1 = Var[memVal];
}
else if (op1.charAt(0) == '_') Val1 = -1 * (new Integer(op1.substring(1))).intValue();
else Val1 = (new Integer(op1)).intValue();

if (op2.charAt(0) >= 'A' && op2.charAt(0) <= 'Z') {
	Val2 = Var[op2.charAt(0) - 'A'];
}
else if (op2.charAt(0) == '_') Val2 = -1* (new Integer(op2.substring(1))).intValue();
else Val2 = (new Integer(op2)).intValue();



System.out.println("op1: " + op1);
System.out.println("oper: " + oper);
System.out.println("op2: " + op2);


// do ops
int m;
if (oper.equals("=")) {
	//System.out.println("in here num is " + (op1.charAt(0) - 'A'));

	m = (int) (op1.charAt(0) - 'A');

	if (Var[m] != Val2) {
		Var[(int) (op1.charAt(0) - 'A')] = Val2;
		dirty[(int) (op1.charAt(0) - 'A')] = true;
	}
	result = "" + Val2;
	//System.out.println("made it");
}

else if (oper.equals("+")) {
	result = "" + (Val1 + Val2);
}
else if (oper.equals("-")) {
	result = "" + (Val1 - Val2);
}
else if (oper.equals("*")) {
	result = "" + (Val1 * Val2);
}
else if (oper.equals("/")) {
	result = "" + (Val1 / Val2);
}
else { 
	System.out.println("Bad operator of " + oper);
	result = "0";
}

int iresult = (new Integer(result)).intValue();
if (iresult < 0) result = "_" + -1 * iresult;

System.out.println("Returning: " + result);
return result;

} // end reduce



public static void main (String argv[]) throws Exception {

PrintWriter out = new PrintWriter (new FileWriter("calculator.out"));
BufferedReader in = new BufferedReader(new FileReader("calculator.in"));
String str;
boolean nochange = true;
int i;
char cvar;

dirty = new boolean[26];
Var = new int[26];

for(i=0; i < 26; i++) Var[i] = 0;

while (true) {

str = in.readLine();
if (str.startsWith("#")) break;
for (i=0; i < 26; i++) dirty[i] = false;

reduce(str);

nochange = true;
for(i=0; i < 26; i++) {
	if (dirty[i] == true) {
		cvar = (char) ('A' + (char) i);
		if (nochange == true) { 
			System.out.print("" + cvar + " = " + Var[i]);
			out.print("" + cvar + " = " + Var[i]);
		}
		else { 
			System.out.print(", " + cvar + " = " + Var[i]);
			out.print(", " + cvar + " = " + Var[i]);
		}
		nochange = false;
	}
} // end for
if (nochange == true) {
	System.out.println("No Change");
	out.println("No Change");
}
else {
	System.out.println();
	out.println();
}
} //end while

out.close();
in.close();

} //end main
} // end class


--qMm9M+Fa2AknHoGS--

From judge@east.isx.com Sun Jan 21 18:09:02 2001 -0500
Status: R
X-Status: A
X-Keywords:
Received: from burdell.cc.gatech.edu (burdell.cc.gatech.edu [130.207.3.207])
	by east.isx.com (8.9.3+Sun/8.9.3) with ESMTP id SAA11037
	for <judge@east.isx.com>; Sun, 21 Jan 2001 18:08:59 -0500 (EST)
Received: from lennon.cc.gatech.edu (lorgon@lennon.cc.gatech.edu [130.207.9.20])
	by burdell.cc.gatech.edu (8.9.1/8.9.1) with ESMTP id RAA07149
	for <judge@east.isx.com>; Sun, 21 Jan 2001 17:59:24 -0500 (EST)
Received: (from lorgon@localhost)
	by lennon.cc.gatech.edu (8.9.1/8.9.1) id RAA24388
	for judge@east.isx.com; Sun, 21 Jan 2001 17:59:23 -0500 (EST)
Date: Sun, 21 Jan 2001 17:59:23 -0500
From: Brian McNamara <lorgon@cc.gatech.edu>
To: judge@east.isx.com
Subject: calc java
Message-ID: <20010121175923.A24380@lennon.cc.gatech.edu>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="tThc/1wpZn/ma/RB"
Content-Disposition: inline
User-Agent: Mutt/1.2.5i
Content-Length: 4045


--tThc/1wpZn/ma/RB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline



-- 
-Brian McNamara (lorgon@cc.gatech.edu)

--tThc/1wpZn/ma/RB
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="calculator.java"

import java.io.*;
import java.util.*;

public class calculator {

public static boolean[] dirty;
public static int[] Var;


public static String reduce (String str) {

int i, open = -1, memVal, Val1, Val2;
String op1, op2, oper, t, result;


System.out.println("Str is: " + str);

//do parens
for (i=0; i < str.length(); i++) {
	if (str.charAt(i) == '(') open = i;
	if (str.charAt(i) == ')') {
		str = str.substring(0, open) 
			+ reduce(str.substring(open + 1,i)) 
			+ str.substring(i+1);
	i=0;
	} // end if
} // end for


// no parens left


StringTokenizer st = new StringTokenizer(str, "*=+-/", true);
op1 = st.nextToken();

if (st.hasMoreTokens() == false) return str;
oper = st.nextToken();
op2 = st.nextToken();

op1 = op1.trim();
op2 = op2.trim();
oper = oper.trim();

if (st.hasMoreTokens()) {
	t = "";
	while(st.hasMoreTokens()) t += st.nextToken();
	return reduce(op1 + oper + reduce(op2 + t));
}

if (op1.charAt(0) >= 'A' && op1.charAt(0) <= 'Z') {
	memVal = (int) (op1.charAt(0) - 'A');
	Val1 = Var[memVal];
}
else if (op1.charAt(0) == '_') Val1 = -1 * (new Integer(op1.substring(1))).intValue();
else Val1 = (new Integer(op1)).intValue();

if (op2.charAt(0) >= 'A' && op2.charAt(0) <= 'Z') {
	Val2 = Var[op2.charAt(0) - 'A'];
}
else if (op2.charAt(0) == '_') Val2 = -1* (new Integer(op2.substring(1))).intValue();
else Val2 = (new Integer(op2)).intValue();



System.out.println("op1: " + op1);
System.out.println("oper: " + oper);
System.out.println("op2: " + op2);


// do ops
int m;
if (oper.equals("=")) {
	//System.out.println("in here num is " + (op1.charAt(0) - 'A'));

	m = (int) (op1.charAt(0) - 'A');

	if (Var[m] != Val2) {
		Var[(int) (op1.charAt(0) - 'A')] = Val2;
		dirty[(int) (op1.charAt(0) - 'A')] = true;
	}
	result = "" + Val2;
	//System.out.println("made it");
}

else if (oper.equals("+")) {
	result = "" + (Val1 + Val2);
}
else if (oper.equals("-")) {
	result = "" + (Val1 - Val2);
}
else if (oper.equals("*")) {
	result = "" + (Val1 * Val2);
}
else if (oper.equals("/")) {
	result = "" + (Val1 / Val2);
}
else { 
	System.out.println("Bad operator of " + oper);
	result = "0";
}

int iresult = (new Integer(result)).intValue();
if (iresult < 0) result = "_" + -1 * iresult;

System.out.println("Returning: " + result);
return result;

} // end reduce



public static void main (String argv[]) throws Exception {

PrintWriter out = new PrintWriter (new FileWriter("calculator.out"));
BufferedReader in = new BufferedReader(new FileReader("calculator.in"));
String str;
boolean nochange = true;
int i;
char cvar;
int oldVars[];

dirty = new boolean[26];
Var = new int[26];

for(i=0; i < 26; i++) Var[i] = 0;

while (true) {

str = in.readLine();
if (str.startsWith("#")) break;

oldVars = new int[26];

for(i=0; i < 26; i++) oldVars[i] = Var[i];

//for (i=0; i < 26; i++) dirty[i] = false;

reduce(str);

nochange = true;

/*
for(i=0; i < 26; i++) {
	if (dirty[i] == true) {
		cvar = (char) ('A' + (char) i);
		if (nochange == true) { 
			System.out.print("" + cvar + " = " + Var[i]);
			out.print("" + cvar + " = " + Var[i]);
		}
		else { 
			System.out.print(", " + cvar + " = " + Var[i]);
			out.print(", " + cvar + " = " + Var[i]);
		}
		nochange = false;
	}
} // end for
*/


for(i=0; i < 26; i++) {
	if (oldVars[i] != Var[i]) {
	cvar = (char) ('A' + (char) i);
	if (nochange == true) {
		System.out.print("" + cvar + " = " + Var[i]);
			out.print("" + cvar + " = " + Var[i]);
		}
		else { 
			System.out.print(", " + cvar + " = " + Var[i]);
			out.print(", " + cvar + " = " + Var[i]);
		}
		nochange = false;
	}
}

if (nochange == true) {
	System.out.println("No Change");
	out.println("No Change");
}
else {
	System.out.println();
	out.println();
}
} //end while

out.close();
in.close();

} //end main
} // end class


--tThc/1wpZn/ma/RB--

