Skip to content

Commit ab112fb

Browse files
committed
srm 556 div 1 250
1 parent 1e4a12c commit ab112fb

File tree

2 files changed

+234
-0
lines changed

2 files changed

+234
-0
lines changed

XorTravelingSalesman.cpp

+151
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,151 @@
1+
#include <iostream>
2+
#include <sstream>
3+
#include <vector>
4+
#include <algorithm>
5+
#include <set>
6+
#include <map>
7+
#include <queue>
8+
#include <cstring>
9+
#include <climits>
10+
#include <cstdio>
11+
using namespace std;
12+
typedef pair<int,int> pi;
13+
typedef set<int> si;
14+
typedef vector<int> vi;
15+
typedef vector<vi> vvi;
16+
typedef vector<string> vs;
17+
typedef long long ll;
18+
#define sz size()
19+
#define mp make_pair
20+
#define pb push_back
21+
#define ri(a, b) for(int i=((int)(a)); i < ((int)(b)); i++) // i -> [a, b)
22+
#define rie(a, b) for(int i=((int)(a)); i <= ((int)(b)); i++) // i -> [a, b]
23+
#define rj(a, b) for(int j=((int)(a)); j < ((int)(b)); j++) // j -> [a, b)
24+
#define rje(a, b) for(int j=((int)(a)); j <= ((int)(b)); j++) // j -> [a, b]
25+
#define rk(a, b) for(int k=((int)(a)); k < ((int)(b)); k++) // k -> [a, b)
26+
#define rke(a, b) for(int k=((int)(a)); k <= ((int)(b)); k++) // k -> [a, b]
27+
#define fi(b) for(int i=0; i < ((int)(b)); i++) // i -> [0, b)
28+
#define fie(b) for(int i=0; i <= ((int)(b)); i++) // i -> [0, b]
29+
#define fj(b) for(int j=0; j < ((int)(b)); j++) // j -> [0, b)
30+
#define fje(b) for(int j=0; j <= ((int)(b)); j++) // j -> [0, b]
31+
#define fk(b) for(int k=0; k < ((int)(b)); k++) // k -> [0, b)
32+
#define fke(b) for(int k=0; k < ((int)(b)); k++) // k -> [0, b]
33+
#define fle(b) for(int l=0; l <= ((int)(b)); l++) // l -> [0, b]
34+
int n;
35+
vi visited(55, 0);
36+
vs M;
37+
void dfs(int s){
38+
fi(n){
39+
if(M[s][i] == 'Y' && !visited[i]){
40+
visited[i] = 1;
41+
dfs(i);
42+
}
43+
}
44+
}
45+
46+
class XorTravelingSalesman{
47+
48+
public:
49+
int maxProfit(vector <int> cityValues, vector <string> roads){
50+
51+
M = roads;
52+
53+
bool dp[1050] = {0};
54+
n = cityValues.size();
55+
int ret = 0;
56+
visited[0] = 1;
57+
dfs(0);
58+
59+
fj(n){
60+
if(visited[j] == 0) continue;
61+
int c = cityValues[j];
62+
dp[c] = 1;
63+
fi(1024){
64+
int k = (i^c);
65+
dp[k] |= dp[i];
66+
if(dp[k]) ret = max(ret, k);
67+
}
68+
}
69+
return ret;
70+
}
71+
72+
// BEGIN CUT HERE
73+
public:
74+
void run_test(int Case) { if ((Case == -1) || (Case == 0)) test_case_0(); if ((Case == -1) || (Case == 1)) test_case_1(); if ((Case == -1) || (Case == 2)) test_case_2(); if ((Case == -1) || (Case == 3)) test_case_3(); }
75+
private:
76+
template <typename T> string print_array(const vector<T> &V) { ostringstream os; os << "{ "; for (typename vector<T>::const_iterator iter = V.begin(); iter != V.end(); ++iter) os << '\"' << *iter << "\","; os << " }"; return os.str(); }
77+
void verify_case(int Case, const int &Expected, const int &Received) { cerr << "Test Case #" << Case << "..."; if (Expected == Received) cerr << "PASSED" << endl; else { cerr << "FAILED" << endl; cerr << "\tExpected: \"" << Expected << '\"' << endl; cerr << "\tReceived: \"" << Received << '\"' << endl; } }
78+
void test_case_0() { int Arr0[] = {0, 7, 11, 5, 2}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); string Arr1[] = {"NYNYY",
79+
"YNYNN",
80+
"NYNNN",
81+
"YNNNN",
82+
"YNNNN"}; vector <string> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 14; verify_case(0, Arg2, maxProfit(Arg0, Arg1)); }
83+
void test_case_1() { int Arr0[] = {556}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); string Arr1[] = {"N"}; vector <string> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 556; verify_case(1, Arg2, maxProfit(Arg0, Arg1)); }
84+
void test_case_2() { int Arr0[] = {0, 4, 8, 32, 512}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); string Arr1[] = {"NYYYY",
85+
"YNNNN",
86+
"YNNNN",
87+
"YNNNN",
88+
"YNNNN"}; vector <string> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 556; verify_case(2, Arg2, maxProfit(Arg0, Arg1)); }
89+
void test_case_3() { int Arr0[] = {37, 1, 19, 64, 42, 41, 64, 64, 54, 16, 256, 36, 64, 2, 4, 2, 62, 29, 58, 64, 1, 32, 16,
90+
256, 17, 2, 17, 4, 1, 64, 21, 8, 256, 63, 3, 1, 43, 15, 8, 39, 41, 8, 16, 8, 16, 256, 64, 512, 45, 64}; vector <int> Arg0(Arr0, Arr0 + (sizeof(Arr0) / sizeof(Arr0[0]))); string Arr1[] = {"NNNNNNYYYYNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNN",
91+
"NNNNNNNNNNNNNNNNYNNNNNNNYNNNNNNNNNNNNNNNNYYNNNYYNN",
92+
"NNNNNYYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
93+
"NNNNNNNYNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN",
94+
"NNNNNNNNNNNNNNNYNNYNYNNNNNNYNNNNNNNNNNYNNNNNNNNNNN",
95+
"NNYNNNYNNNNNNNNYNNYNNNYYNNNYNYNNNNYNNNNNNNNYNNNNNN",
96+
"YNYNNYNYNNNNNNNYNNNNNNNNNNNNNNNNNNNYNNNNNNNNYNNYNN",
97+
"YNNYNNYNYNYYNNNNNNNNNNNNNNNNNNNNNNYNNYNNNNNNNNNNNN",
98+
"YNNNNNNYNNNNNNNNNNNNNNYNYNNNNNNNNNNYYYNNNNNNNYNNNY",
99+
"YNNNNNNNNNNNNNNNNYNYNYNYYNNNYNNNNYNNNNNNNNNNNNNNNY",
100+
"NNNNNNNYNNNNYNNNNNNNNYYNNNYYNNNNYNYYNNNNNNNNNNNNNN",
101+
"NNNNNNNYNNNNNNYNNNNYYNNNYNNYYNNNNNNNNNNNNNYNYNNNNN",
102+
"NNNNNNNNNNYNNNNNYNNNNYNNNNNNNNNNYNYNNYNYNNNYNYNNNN",
103+
"NNNNNNNNNNNNNNNYNNNNNNNNNYNNNNNNNNNNNNYNNNNNNNNYNN",
104+
"NNNNNNNNNNNYNNNNNYNYNNYYNNNNNYNNNNNNNNNYNNYNNYNNNN",
105+
"NNNNYYYNNNNNNYNNNYYNNYNNNYNYYNNNNNNNNNYYYNNYNNYNYN",
106+
"NYNNNNNNNNNNYNNNNNNNYNNNYYNNNYNNNNYNNNNNNNNNNNNNNN",
107+
"NNNNNNNNNYNNNNYYNNNNNNYNNNYNNNNNYNNYNYYNNNNYNNNYNN",
108+
"NNNYYYNNNNNNNNNYNNNNNYNYNYNNNNNNNNYNNNNNNNNNNNNNNN",
109+
"NNNNNNNNNYNYNNYNNNNNNYNYYYNNNNNNNNNNNYNNYNNNNNYNNN",
110+
"NNNNYNNNNNNYNNNNYNNNNYNNNYYNNNYNNNYNNNNNNNNNNYNYNY",
111+
"NNNNNNNNNYYNYNNYNNYYYNYNNNNNNNNYNYNNNNNNNNNNYNNNNN",
112+
"NNNNNYNNYNYNNNYNNYNNNYNNNNNNNNNNNYNNYNYNNYNNNNNNNN",
113+
"NNNNNYNNNYNNNNYNNNYYNNNNNNNNNNNNNNNNNNNNNNYNNNYNNN",
114+
"NYNNNNNNYYNYNNNNYNNYNNNNNNNNNNYNNNNNNYNNNYNNYNNNNN",
115+
"NNNNNNNNNNNNNYNYYNYYYNNNNNNYNNNNNNNNNNNYYNNNNNNNYN",
116+
"NNNNNNNNNNYNNNNNNYNNYNNNNNNNNYNNNNYNNNNNNYYNNNNYNN",
117+
"NNNNYYNNNNYYNNNYNNNNNNNNNYNNNYYNYNNNNNNNNNNNNNNNNN",
118+
"NNNNNNNNNYNYNNNYNNNNNNNNNNNNNYNNNNYNNNNNNNNYNNYNYN",
119+
"NNNNNYNNNNNNNNYNYNNNNNNNNNYYYNNNNNNNNYNNNNYNNNNNNN",
120+
"NNNNNNNNNNNNNNNNNNNNYNNNYNNYNNNNNYNNNNNNNNNNNNNNNY",
121+
"NNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNYNNNNNNNNNYNNNNNNN",
122+
"NNNNNNNNNNYNYNNNNYNNNNNNNNNYNNNYNNNYYNNNNNYNNNYNNN",
123+
"NNNNNNNNNYNNNNNNNNNNNYYNNNNNNNYNNNNNNNYNNYNNNNNNNN",
124+
"NNNNNYNYNNYNYNNNYNYNYNNNNNYNYNNNNNNYYNYNYNYNNNNNYN",
125+
"YNNNNNYNYNYNNNNNNYNNNNNNNNNNNNNNYNYNNNNNYNNYNNNYNN",
126+
"NNNNNNNNYNNNNNNNNNNNNNYNNNNNNNNNYNYNNNNNNYNNNNNNYN",
127+
"NNNNNNNYYNNNYNNNNYNYNNNNYNNNNYNNNNNNNNNNNYNNNNYNNN",
128+
"NNNNYNNNNNNNNYNYNYNNNNYNNNNNNNNNNYYNNNNYNNNNNNNNNY",
129+
"NNNNNNNNNNNNYNYYNNNNNNNNNYNNNNNNNNNNNNYNNNNNYNYYNN",
130+
"NNNNNNNNNNNNNNNYNNNYNNNNNYNNNNNNNNYYNNNNNNNNNNNNNN",
131+
"NYNNNNNNNNNNNNNNNNNNNNYNYNYNNNNNNYNNYYNNNNNNNNNNNN",
132+
"NYNNNNNNNNNYNNYNNNNNNNNYNNYNNYNYYNYNNNNNNNNNYNNNNN",
133+
"NNNNNYNNNNNNYNNYNYNNNNNNNNNNYNNNNNNYNNNNNNNNNNNNNY",
134+
"NNNNNNYNNNNYNNNNNNNNNYNNYNNNNNNNNNNNNNNYNNYNNYNNNY",
135+
"NNNNNNNNYNNNYNYNNNNNYNNNNNNNNNNNNNNNNNNNNNNNYNNNNN",
136+
"NYNNNNNNNNNNNNNYNNNYNNNYNNNNYNNNYNNNNYNYNNNNNNNNNN",
137+
"NYNNNNYNNNNNNYNNNYNNYNNNNNYNNNNNNNNYNNNYNNNNNNNNNN",
138+
"NNNNNNNNNNNNNNNYNNNNNNNNNYNNYNNNNNYNYNNNNNNNNNNNNN",
139+
"NNNNNNNNYYNNNNNNNNNNYNNNNNNNNNYNNNNNNNYNNNNYYNNNNN"}; vector <string> Arg1(Arr1, Arr1 + (sizeof(Arr1) / sizeof(Arr1[0]))); int Arg2 = 895; verify_case(3, Arg2, maxProfit(Arg0, Arg1)); }
140+
141+
// END CUT HERE
142+
143+
};
144+
145+
// BEGIN CUT HERE
146+
int main()
147+
{
148+
XorTravelingSalesman ___test;
149+
___test.run_test(-1);
150+
}
151+
// END CUT HERE

XorTravelingSalesman.html

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
<html><body bgcolor="#000000" text="#ffffff"><table><tr><td colspan="2"><h3>Problem Statement</h3></td></tr><tr><td>&#160;&#160;&#160;&#160;</td><td><i>Warning: This problem statement contains superscripts and/or subscripts. It may not display properly outside of the applet.</i>
2+
<br></br><br></br>
3+
You are playing a video game similar to the famous traveling salesman problem. In this game, you travel between cities and collect profits according to some rules explained in the next paragraphs. Unlike the traditional traveling salesman problem, it is allowed to visit each of the cities multiple times.
4+
<br></br><br></br>
5+
There are N cities numbered 0 through N-1. Each city has an associated value. The values are given in vector &lt;int&gt; <b>cityValues</b>, where <b>cityValues</b>[i] is the value of city i.
6+
<br></br><br></br>
7+
There are also zero or more bidirectional roads connecting the cities. Each road connects exactly two different cities and can be traversed in both ways. The information about the roads is given in vector &lt;string&gt; <b>roads</b>. The j-th character of the i-th element of <b>roads</b> will be 'N' if there is no road connecting city i and city j, or 'Y' if there is exactly one road connecting city i and city j.
8+
<br></br><br></br>
9+
In this game, you start at city 0 with profit <b>cityValues</b>[0]. Your goal is to maximize your final profit. At any time in the game, you may perform one of the following actions:
10+
<br></br><br></br>
11+
<ul>
12+
<li>End the game. Your current profit will be recorded as your final profit.</li>
13+
<li>Move to another city by traversing a single road. This is the interesting part of the game: assume that your current profit is P and the destination city is city X. After traversing the road, you will be at city X with profit P XOR <b>cityValues</b>[X].</li>
14+
</ul>
15+
<br></br>
16+
You are given the vector &lt;int&gt; <b>cityValues</b> and the vector &lt;string&gt; <b>roads</b>. Return the maximum possible final profit you can achieve in this game.</td></tr><tr><td colspan="2"><h3>Definition</h3></td></tr><tr><td>&#160;&#160;&#160;&#160;</td><td><table><tr><td>Class:</td><td>XorTravelingSalesman</td></tr><tr><td>Method:</td><td>maxProfit</td></tr><tr><td>Parameters:</td><td>vector &lt;int&gt;, vector &lt;string&gt;</td></tr><tr><td>Returns:</td><td>int</td></tr><tr><td>Method signature:</td><td>int maxProfit(vector &lt;int&gt; cityValues, vector &lt;string&gt; roads)</td></tr><tr><td colspan="2">(be sure your method is public)</td></tr></table></td></tr><tr><td colspan="2"><h3>Limits</h3></td></tr><tr><td>&#160;&#160;&#160;&#160;</td><td><table><tr><td>Time limit (s):</td><td>2.000</td></tr><tr><td>Memory limit (MB):</td><td>64</td></tr></table></td></tr><tr><td colspan="2"><h3>Notes</h3></td></tr><tr><td align="center" valign="top">-</td><td>If a and b are single bits then a XOR b is defined as (a + b) modulo 2. For two integers, A and B, in order to calculate A XOR B, they need to be represented in binary: A = (a<sub>n</sub>...a<sub>1</sub>)<sub>2</sub>, B = (b<sub>n</sub>...b<sub>1</sub>)<sub>2</sub> (if the lengths of their representations are different, the shorter one is prepended with the necessary number of leading zeroes). Then A XOR B = C = (c<sub>n</sub>...c<sub>1</sub>)<sub>2</sub>, where c<sub>i</sub> = a<sub>i</sub> XOR b<sub>i</sub>. For example, 10 XOR 3 = (1010)<sub>2</sub> XOR (0011)<sub>2</sub> = (1001)<sub>2</sub> = 9.</td></tr><tr><td colspan="2"><h3>Constraints</h3></td></tr><tr><td align="center" valign="top">-</td><td><b>cityValues</b> will contain between 1 and 50 elements, inclusive.</td></tr><tr><td align="center" valign="top">-</td><td>Each element of <b>cityValues</b> will be between 0 and 1023, inclusive.</td></tr><tr><td align="center" valign="top">-</td><td><b>roads</b> will contain exactly N elements, where N is the number of elements of <b>cityValues</b>.</td></tr><tr><td align="center" valign="top">-</td><td>Each element of <b>roads</b> will contain exactly N characters, where N is the number of elements of <b>cityValues</b>.</td></tr><tr><td align="center" valign="top">-</td><td>Each character in <b>roads</b> will be either 'N' or 'Y'.</td></tr><tr><td align="center" valign="top">-</td><td>For each i, the i-th character of the i-th element of <b>roads</b> will be 'N'.</td></tr><tr><td align="center" valign="top">-</td><td>For each pair (i, j), the j-th character of the i-th element of <b>roads</b> will be equal to the i-th character of the j-th element of <b>roads</b>.</td></tr><tr><td colspan="2"><h3>Examples</h3></td></tr><tr><td align="center" nowrap="true">0)</td><td></td></tr><tr><td>&#160;&#160;&#160;&#160;</td><td><table><tr><td><table><tr><td><pre>{0, 7, 11, 5, 2}</pre></td></tr><tr><td><pre>{&quot;NYNYY&quot;,
17+
&quot;YNYNN&quot;,
18+
&quot;NYNNN&quot;,
19+
&quot;YNNNN&quot;,
20+
&quot;YNNNN&quot;}</pre></td></tr></table></td></tr><tr><td><pre>Returns: 14</pre></td></tr><tr><td><table><tr><td colspan="2">One possible solution:
21+
<ul>
22+
<li>Start at city 0. Profit = <b>cityValues</b>[0] = 0.</li>
23+
<li>Move to city 1. Profit = 0 XOR 7 = 7.</li>
24+
<li>Move to city 2. Profit = 7 XOR 11 = 12.</li>
25+
<li>Move to city 1. Profit = 12 XOR 7 = 11.</li>
26+
<li>Move to city 0. Profit = 11 XOR 0 = 11.</li>
27+
<li>Move to city 3. Profit = 11 XOR 5 = 14.</li>
28+
<li>End the game.</li>
29+
</ul></td></tr></table></td></tr></table></td></tr><tr><td align="center" nowrap="true">1)</td><td></td></tr><tr><td>&#160;&#160;&#160;&#160;</td><td><table><tr><td><table><tr><td><pre>{556}</pre></td></tr><tr><td><pre>{&quot;N&quot;}</pre></td></tr></table></td></tr><tr><td><pre>Returns: 556</pre></td></tr><tr><td><table><tr><td colspan="2">You cannot move anywhere.</td></tr></table></td></tr></table></td></tr><tr><td align="center" nowrap="true">2)</td><td></td></tr><tr><td>&#160;&#160;&#160;&#160;</td><td><table><tr><td><table><tr><td><pre>{0, 4, 8, 32, 512}</pre></td></tr><tr><td><pre>{&quot;NYYYY&quot;,
30+
&quot;YNNNN&quot;,
31+
&quot;YNNNN&quot;,
32+
&quot;YNNNN&quot;,
33+
&quot;YNNNN&quot;}</pre></td></tr></table></td></tr><tr><td><pre>Returns: 556</pre></td></tr><tr><td><table><tr><td colspan="2"></td></tr></table></td></tr></table></td></tr><tr><td align="center" nowrap="true">3)</td><td></td></tr><tr><td>&#160;&#160;&#160;&#160;</td><td><table><tr><td><table><tr><td><pre>{37, 1, 19, 64, 42, 41, 64, 64, 54, 16, 256, 36, 64, 2, 4, 2, 62, 29, 58, 64, 1, 32, 16,
34+
256, 17, 2, 17, 4, 1, 64, 21, 8, 256, 63, 3, 1, 43, 15, 8, 39, 41, 8, 16, 8, 16, 256, 64, 512, 45, 64}</pre></td></tr><tr><td><pre>{&quot;NNNNNNYYYYNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNN&quot;,
35+
&quot;NNNNNNNNNNNNNNNNYNNNNNNNYNNNNNNNNNNNNNNNNYYNNNYYNN&quot;,
36+
&quot;NNNNNYYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&quot;,
37+
&quot;NNNNNNNYNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN&quot;,
38+
&quot;NNNNNNNNNNNNNNNYNNYNYNNNNNNYNNNNNNNNNNYNNNNNNNNNNN&quot;,
39+
&quot;NNYNNNYNNNNNNNNYNNYNNNYYNNNYNYNNNNYNNNNNNNNYNNNNNN&quot;,
40+
&quot;YNYNNYNYNNNNNNNYNNNNNNNNNNNNNNNNNNNYNNNNNNNNYNNYNN&quot;,
41+
&quot;YNNYNNYNYNYYNNNNNNNNNNNNNNNNNNNNNNYNNYNNNNNNNNNNNN&quot;,
42+
&quot;YNNNNNNYNNNNNNNNNNNNNNYNYNNNNNNNNNNYYYNNNNNNNYNNNY&quot;,
43+
&quot;YNNNNNNNNNNNNNNNNYNYNYNYYNNNYNNNNYNNNNNNNNNNNNNNNY&quot;,
44+
&quot;NNNNNNNYNNNNYNNNNNNNNYYNNNYYNNNNYNYYNNNNNNNNNNNNNN&quot;,
45+
&quot;NNNNNNNYNNNNNNYNNNNYYNNNYNNYYNNNNNNNNNNNNNYNYNNNNN&quot;,
46+
&quot;NNNNNNNNNNYNNNNNYNNNNYNNNNNNNNNNYNYNNYNYNNNYNYNNNN&quot;,
47+
&quot;NNNNNNNNNNNNNNNYNNNNNNNNNYNNNNNNNNNNNNYNNNNNNNNYNN&quot;,
48+
&quot;NNNNNNNNNNNYNNNNNYNYNNYYNNNNNYNNNNNNNNNYNNYNNYNNNN&quot;,
49+
&quot;NNNNYYYNNNNNNYNNNYYNNYNNNYNYYNNNNNNNNNYYYNNYNNYNYN&quot;,
50+
&quot;NYNNNNNNNNNNYNNNNNNNYNNNYYNNNYNNNNYNNNNNNNNNNNNNNN&quot;,
51+
&quot;NNNNNNNNNYNNNNYYNNNNNNYNNNYNNNNNYNNYNYYNNNNYNNNYNN&quot;,
52+
&quot;NNNYYYNNNNNNNNNYNNNNNYNYNYNNNNNNNNYNNNNNNNNNNNNNNN&quot;,
53+
&quot;NNNNNNNNNYNYNNYNNNNNNYNYYYNNNNNNNNNNNYNNYNNNNNYNNN&quot;,
54+
&quot;NNNNYNNNNNNYNNNNYNNNNYNNNYYNNNYNNNYNNNNNNNNNNYNYNY&quot;,
55+
&quot;NNNNNNNNNYYNYNNYNNYYYNYNNNNNNNNYNYNNNNNNNNNNYNNNNN&quot;,
56+
&quot;NNNNNYNNYNYNNNYNNYNNNYNNNNNNNNNNNYNNYNYNNYNNNNNNNN&quot;,
57+
&quot;NNNNNYNNNYNNNNYNNNYYNNNNNNNNNNNNNNNNNNNNNNYNNNYNNN&quot;,
58+
&quot;NYNNNNNNYYNYNNNNYNNYNNNNNNNNNNYNNNNNNYNNNYNNYNNNNN&quot;,
59+
&quot;NNNNNNNNNNNNNYNYYNYYYNNNNNNYNNNNNNNNNNNYYNNNNNNNYN&quot;,
60+
&quot;NNNNNNNNNNYNNNNNNYNNYNNNNNNNNYNNNNYNNNNNNYYNNNNYNN&quot;,
61+
&quot;NNNNYYNNNNYYNNNYNNNNNNNNNYNNNYYNYNNNNNNNNNNNNNNNNN&quot;,
62+
&quot;NNNNNNNNNYNYNNNYNNNNNNNNNNNNNYNNNNYNNNNNNNNYNNYNYN&quot;,
63+
&quot;NNNNNYNNNNNNNNYNYNNNNNNNNNYYYNNNNNNNNYNNNNYNNNNNNN&quot;,
64+
&quot;NNNNNNNNNNNNNNNNNNNNYNNNYNNYNNNNNYNNNNNNNNNNNNNNNY&quot;,
65+
&quot;NNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNYNNNNNNNNNYNNNNNNN&quot;,
66+
&quot;NNNNNNNNNNYNYNNNNYNNNNNNNNNYNNNYNNNYYNNNNNYNNNYNNN&quot;,
67+
&quot;NNNNNNNNNYNNNNNNNNNNNYYNNNNNNNYNNNNNNNYNNYNNNNNNNN&quot;,
68+
&quot;NNNNNYNYNNYNYNNNYNYNYNNNNNYNYNNNNNNYYNYNYNYNNNNNYN&quot;,
69+
&quot;YNNNNNYNYNYNNNNNNYNNNNNNNNNNNNNNYNYNNNNNYNNYNNNYNN&quot;,
70+
&quot;NNNNNNNNYNNNNNNNNNNNNNYNNNNNNNNNYNYNNNNNNYNNNNNNYN&quot;,
71+
&quot;NNNNNNNYYNNNYNNNNYNYNNNNYNNNNYNNNNNNNNNNNYNNNNYNNN&quot;,
72+
&quot;NNNNYNNNNNNNNYNYNYNNNNYNNNNNNNNNNYYNNNNYNNNNNNNNNY&quot;,
73+
&quot;NNNNNNNNNNNNYNYYNNNNNNNNNYNNNNNNNNNNNNYNNNNNYNYYNN&quot;,
74+
&quot;NNNNNNNNNNNNNNNYNNNYNNNNNYNNNNNNNNYYNNNNNNNNNNNNNN&quot;,
75+
&quot;NYNNNNNNNNNNNNNNNNNNNNYNYNYNNNNNNYNNYYNNNNNNNNNNNN&quot;,
76+
&quot;NYNNNNNNNNNYNNYNNNNNNNNYNNYNNYNYYNYNNNNNNNNNYNNNNN&quot;,
77+
&quot;NNNNNYNNNNNNYNNYNYNNNNNNNNNNYNNNNNNYNNNNNNNNNNNNNY&quot;,
78+
&quot;NNNNNNYNNNNYNNNNNNNNNYNNYNNNNNNNNNNNNNNYNNYNNYNNNY&quot;,
79+
&quot;NNNNNNNNYNNNYNYNNNNNYNNNNNNNNNNNNNNNNNNNNNNNYNNNNN&quot;,
80+
&quot;NYNNNNNNNNNNNNNYNNNYNNNYNNNNYNNNYNNNNYNYNNNNNNNNNN&quot;,
81+
&quot;NYNNNNYNNNNNNYNNNYNNYNNNNNYNNNNNNNNYNNNYNNNNNNNNNN&quot;,
82+
&quot;NNNNNNNNNNNNNNNYNNNNNNNNNYNNYNNNNNYNYNNNNNNNNNNNNN&quot;,
83+
&quot;NNNNNNNNYYNNNNNNNNNNYNNNNNNNNNYNNNNNNNYNNNNYYNNNNN&quot;}</pre></td></tr></table></td></tr><tr><td><pre>Returns: 895</pre></td></tr><tr><td><table><tr><td colspan="2">A huge random case.</td></tr></table></td></tr></table></td></tr></table><p>This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved. </p></body></html>

0 commit comments

Comments
 (0)