42b1307ad5 2014-02-15 kinaba: #include <iostream> 42b1307ad5 2014-02-15 kinaba: #include <sstream> 42b1307ad5 2014-02-15 kinaba: #include <iomanip> 42b1307ad5 2014-02-15 kinaba: #include <vector> 42b1307ad5 2014-02-15 kinaba: #include <string> 42b1307ad5 2014-02-15 kinaba: #include <map> 42b1307ad5 2014-02-15 kinaba: #include <set> 42b1307ad5 2014-02-15 kinaba: #include <algorithm> 42b1307ad5 2014-02-15 kinaba: #include <numeric> 42b1307ad5 2014-02-15 kinaba: #include <iterator> 42b1307ad5 2014-02-15 kinaba: #include <functional> 42b1307ad5 2014-02-15 kinaba: #include <complex> 42b1307ad5 2014-02-15 kinaba: #include <queue> 42b1307ad5 2014-02-15 kinaba: #include <stack> 42b1307ad5 2014-02-15 kinaba: #include <cmath> 42b1307ad5 2014-02-15 kinaba: #include <cassert> 42b1307ad5 2014-02-15 kinaba: #include <tuple> 42b1307ad5 2014-02-15 kinaba: using namespace std; 42b1307ad5 2014-02-15 kinaba: typedef long long LL; 42b1307ad5 2014-02-15 kinaba: typedef complex<double> CMP; 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: template<typename Vert> 42b1307ad5 2014-02-15 kinaba: class SCC 42b1307ad5 2014-02-15 kinaba: { 42b1307ad5 2014-02-15 kinaba: vector< vector<int> > G; 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: public: 42b1307ad5 2014-02-15 kinaba: void addVert( Vert s ) 42b1307ad5 2014-02-15 kinaba: { 42b1307ad5 2014-02-15 kinaba: if( s >= G.size() ) G.resize(s+1); 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: void addEdge( Vert s, Vert t ) 42b1307ad5 2014-02-15 kinaba: { 42b1307ad5 2014-02-15 kinaba: if( max(s,t) >= G.size() ) G.resize(max(s,t)+1); 42b1307ad5 2014-02-15 kinaba: G[s].push_back(t); 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: void scc() 42b1307ad5 2014-02-15 kinaba: { 42b1307ad5 2014-02-15 kinaba: int N = G.size(); 42b1307ad5 2014-02-15 kinaba: dfs_no.assign(N, 0); 42b1307ad5 2014-02-15 kinaba: dfs_lo.assign(N, 0); 42b1307ad5 2014-02-15 kinaba: pending = stack<int>(); 42b1307ad5 2014-02-15 kinaba: scc_id.assign(N, -1); 42b1307ad5 2014-02-15 kinaba: scc_list.clear(); 42b1307ad5 2014-02-15 kinaba: scc_children.clear(); 42b1307ad5 2014-02-15 kinaba: for(int v=0; v<N; ++v) 42b1307ad5 2014-02-15 kinaba: dfs(v); 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: vector<int> scc_id; // which scc does the vert belong to? 42b1307ad5 2014-02-15 kinaba: vector< vector<int> > scc_list; // list of nodes in the scc 42b1307ad5 2014-02-15 kinaba: vector< vector<int> > scc_children; // forest relationship of sccs 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: private: 42b1307ad5 2014-02-15 kinaba: int no; 42b1307ad5 2014-02-15 kinaba: vector<int> dfs_no; // 1-origin dfs-visit ID 42b1307ad5 2014-02-15 kinaba: vector<int> dfs_lo; // the least ID in the vert's scc 42b1307ad5 2014-02-15 kinaba: stack<int> pending; // current unclassigied verts 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: void dfs(int v) 42b1307ad5 2014-02-15 kinaba: { 42b1307ad5 2014-02-15 kinaba: // visit v if not yet 42b1307ad5 2014-02-15 kinaba: if( dfs_no[v] ) 42b1307ad5 2014-02-15 kinaba: return; 42b1307ad5 2014-02-15 kinaba: dfs_no[v] = dfs_lo[v] = ++no; 42b1307ad5 2014-02-15 kinaba: pending.push(v); 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: // visit children 42b1307ad5 2014-02-15 kinaba: for(int i=0; i<G[v].size(); ++i) { 42b1307ad5 2014-02-15 kinaba: int u = G[v][i]; 42b1307ad5 2014-02-15 kinaba: dfs( u ); 42b1307ad5 2014-02-15 kinaba: if( scc_id[u] == -1 ) 42b1307ad5 2014-02-15 kinaba: dfs_lo[v] = min( dfs_lo[v], dfs_lo[u] ); 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: // when v is the representative of scc 42b1307ad5 2014-02-15 kinaba: if( dfs_no[v] == dfs_lo[v] ) { 42b1307ad5 2014-02-15 kinaba: vector<int> scc; 42b1307ad5 2014-02-15 kinaba: for(;;) { 42b1307ad5 2014-02-15 kinaba: int w = pending.top(); pending.pop(); 42b1307ad5 2014-02-15 kinaba: scc.push_back(w); 42b1307ad5 2014-02-15 kinaba: scc_id[w] = scc_list.size(); 42b1307ad5 2014-02-15 kinaba: if( w == v ) break; 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: scc_list.push_back(scc); 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: set<int> children; 42b1307ad5 2014-02-15 kinaba: for(int j=0; j<scc.size(); ++j) 42b1307ad5 2014-02-15 kinaba: for(int i=0; i<G[scc[j]].size(); ++i) 42b1307ad5 2014-02-15 kinaba: children.insert( scc_id[G[scc[j]][i]] ); 42b1307ad5 2014-02-15 kinaba: children.erase(scc_id[v]); 42b1307ad5 2014-02-15 kinaba: scc_children.push_back( vector<int>(children.begin(), children.end()) ); 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: }; 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: class BigO { public: 42b1307ad5 2014-02-15 kinaba: int minK(vector <string> graph) 42b1307ad5 2014-02-15 kinaba: { 42b1307ad5 2014-02-15 kinaba: int N = graph.size(); 42b1307ad5 2014-02-15 kinaba: SCC<int> scc; 42b1307ad5 2014-02-15 kinaba: for(int i=0; i<N; ++i) 42b1307ad5 2014-02-15 kinaba: scc.addVert(i); 42b1307ad5 2014-02-15 kinaba: for(int i=0; i<N; ++i) 42b1307ad5 2014-02-15 kinaba: for(int j=0; j<N; ++j) 42b1307ad5 2014-02-15 kinaba: if(graph[i][j] == 'Y') 42b1307ad5 2014-02-15 kinaba: scc.addEdge(i, j); 42b1307ad5 2014-02-15 kinaba: scc.scc(); 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: int K = scc.scc_list.size(); 42b1307ad5 2014-02-15 kinaba: vector<bool> loop(K); 42b1307ad5 2014-02-15 kinaba: for(int i=0; i<K; ++i) { 42b1307ad5 2014-02-15 kinaba: if(scc.scc_list[i].size() == 1) 42b1307ad5 2014-02-15 kinaba: continue; 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: for(int v: scc.scc_list[i]) { 42b1307ad5 2014-02-15 kinaba: int cnt = 0; 42b1307ad5 2014-02-15 kinaba: for(int u=0; u<N; ++u) 42b1307ad5 2014-02-15 kinaba: if(graph[v][u]=='Y' && scc.scc_id[v]==scc.scc_id[u]) 42b1307ad5 2014-02-15 kinaba: ++cnt; 42b1307ad5 2014-02-15 kinaba: if(cnt>=2) 42b1307ad5 2014-02-15 kinaba: return -1; // branched loop 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: loop[i] = true; 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: function<int(int)> rec; 42b1307ad5 2014-02-15 kinaba: vector<int> memo(K, -1); 42b1307ad5 2014-02-15 kinaba: rec = [&](int s) { 42b1307ad5 2014-02-15 kinaba: if(memo[s] != -1) 42b1307ad5 2014-02-15 kinaba: return memo[s]; 42b1307ad5 2014-02-15 kinaba: int best = 0; 42b1307ad5 2014-02-15 kinaba: for(int t: scc.scc_children[s]) 42b1307ad5 2014-02-15 kinaba: best = max(best, rec(t)); 42b1307ad5 2014-02-15 kinaba: return memo[s] = best + loop[s]; 42b1307ad5 2014-02-15 kinaba: }; 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: int best = 0; 42b1307ad5 2014-02-15 kinaba: for(int i=0; i<K; ++i) 42b1307ad5 2014-02-15 kinaba: best = max(best, rec(i)); 42b1307ad5 2014-02-15 kinaba: return best ? best-1 : 0; 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: }; 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: // BEGIN CUT HERE 42b1307ad5 2014-02-15 kinaba: #include <ctime> 42b1307ad5 2014-02-15 kinaba: double start_time; string timer() 42b1307ad5 2014-02-15 kinaba: { ostringstream os; os << " (" << int((clock()-start_time)/CLOCKS_PER_SEC*1000) << " msec)"; return os.str(); } 42b1307ad5 2014-02-15 kinaba: template<typename T> ostream& operator<<(ostream& os, const vector<T>& v) 42b1307ad5 2014-02-15 kinaba: { os << "{ "; 42b1307ad5 2014-02-15 kinaba: for(typename vector<T>::const_iterator it=v.begin(); it!=v.end(); ++it) 42b1307ad5 2014-02-15 kinaba: os << '\"' << *it << '\"' << (it+1==v.end() ? "" : ", "); os << " }"; return os; } 42b1307ad5 2014-02-15 kinaba: void verify_case(const int& Expected, const int& Received) { 42b1307ad5 2014-02-15 kinaba: bool ok = (Expected == Received); 42b1307ad5 2014-02-15 kinaba: if(ok) cerr << "PASSED" << timer() << endl; else { cerr << "FAILED" << timer() << endl; 42b1307ad5 2014-02-15 kinaba: cerr << "\to: \"" << Expected << '\"' << endl << "\tx: \"" << Received << '\"' << endl; } } 42b1307ad5 2014-02-15 kinaba: #define CASE(N) {cerr << "Test Case #" << N << "..." << flush; start_time=clock(); 42b1307ad5 2014-02-15 kinaba: #define END verify_case(_, BigO().minK(graph));} 42b1307ad5 2014-02-15 kinaba: int main(){ 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: CASE(0) 42b1307ad5 2014-02-15 kinaba: string graph_[] = {"NYY", 42b1307ad5 2014-02-15 kinaba: "YNY", 42b1307ad5 2014-02-15 kinaba: "YYN"}; 42b1307ad5 2014-02-15 kinaba: vector <string> graph(graph_, graph_+sizeof(graph_)/sizeof(*graph_)); 42b1307ad5 2014-02-15 kinaba: int _ = -1; 42b1307ad5 2014-02-15 kinaba: END 42b1307ad5 2014-02-15 kinaba: CASE(1) 42b1307ad5 2014-02-15 kinaba: string graph_[] = {"NYNNN", 42b1307ad5 2014-02-15 kinaba: "NNYNN", 42b1307ad5 2014-02-15 kinaba: "NNNYN", 42b1307ad5 2014-02-15 kinaba: "NNNNY", 42b1307ad5 2014-02-15 kinaba: "NNNNN"}; 42b1307ad5 2014-02-15 kinaba: vector <string> graph(graph_, graph_+sizeof(graph_)/sizeof(*graph_)); 42b1307ad5 2014-02-15 kinaba: int _ = 0; 42b1307ad5 2014-02-15 kinaba: END 42b1307ad5 2014-02-15 kinaba: CASE(2) 42b1307ad5 2014-02-15 kinaba: string graph_[] = {"NYNNN", 42b1307ad5 2014-02-15 kinaba: "YNNNN", 42b1307ad5 2014-02-15 kinaba: "NNNYN", 42b1307ad5 2014-02-15 kinaba: "NNNNY", 42b1307ad5 2014-02-15 kinaba: "NNYNN"}; 42b1307ad5 2014-02-15 kinaba: vector <string> graph(graph_, graph_+sizeof(graph_)/sizeof(*graph_)); 42b1307ad5 2014-02-15 kinaba: int _ = 0; 42b1307ad5 2014-02-15 kinaba: END 42b1307ad5 2014-02-15 kinaba: CASE(3) 42b1307ad5 2014-02-15 kinaba: string graph_[] = {"NYYYNYYYNNYYYYYYNYNN", 42b1307ad5 2014-02-15 kinaba: "NNNNYNYYNNYYYNYYNYYN", 42b1307ad5 2014-02-15 kinaba: "NYNNYYYNNNYYYYNYNYNN", 42b1307ad5 2014-02-15 kinaba: "NYYNNYYYYNNNYYNNYNYY", 42b1307ad5 2014-02-15 kinaba: "NYNYNNNNNNYYYYYNYYYN", 42b1307ad5 2014-02-15 kinaba: "YNNNNNNYNNYNNYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "NNYYNNNNNYNYNYNNYNYY", 42b1307ad5 2014-02-15 kinaba: "NNYNYYNNNNYNYNYYYYNN", 42b1307ad5 2014-02-15 kinaba: "NYYNYYNNNYNNYYYNYNYN", 42b1307ad5 2014-02-15 kinaba: "YYNNYNNYYNYNNNNNYNNN", 42b1307ad5 2014-02-15 kinaba: "YYNYYNNYYYNYYNYNYYYY", 42b1307ad5 2014-02-15 kinaba: "YYNNYYNYNYNNNNYNNNNY", 42b1307ad5 2014-02-15 kinaba: "NNYYNYYYNNNNNYYYYYNY", 42b1307ad5 2014-02-15 kinaba: "YNNNYNNNNYNNNNNYNNNY", 42b1307ad5 2014-02-15 kinaba: "YYYYNYYNNYNNNNNYNNNN", 42b1307ad5 2014-02-15 kinaba: "NYYYYNYNYYNNYNNNYNNY", 42b1307ad5 2014-02-15 kinaba: "YYYYYNNNYYYYNYYYNNYN", 42b1307ad5 2014-02-15 kinaba: "NNYNNYNYNYNNNNNNYNYN", 42b1307ad5 2014-02-15 kinaba: "YYNYYNNNNNYNNYNYNNNY", 42b1307ad5 2014-02-15 kinaba: "YYYYNYNYYNNYNYNYNNNN"}; 42b1307ad5 2014-02-15 kinaba: vector <string> graph(graph_, graph_+sizeof(graph_)/sizeof(*graph_)); 42b1307ad5 2014-02-15 kinaba: int _ = -1; 42b1307ad5 2014-02-15 kinaba: END 42b1307ad5 2014-02-15 kinaba: CASE(4) 42b1307ad5 2014-02-15 kinaba: string graph_[] = {"NYNYYYNYYYNYYNYYNYYNYYNYNNYYYYNNNYYNNNYNYYNYNNNYNY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNYNNNYNNNNNYNYNYNNNNNNYNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNYYYYNYNYYNNYYYYYYYYYYNYYYNYYYYYYNNYYYYYYYNNYYYY", 42b1307ad5 2014-02-15 kinaba: "NYNNYYNNNNNNNNNNNYNNNYNYNNYNYNYYNYYNNYYYNNNNNNNYYY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNYNNYYNNNYNNNNYNNYNNYNNYNNYNYNNNNNNNYYN", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNYNNNYNNNNNNNNNYNNNNNNYNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "YYNYNNNYNYYYYNYYYYYYYYYYNYYYYYYYNYYNNYNYYYYYNNYNYY", 42b1307ad5 2014-02-15 kinaba: "NYNYYNNNYYNNYNNYYYNNYYNYNYYNYYYNNNYNNYYYNNNNNNNYYY", 42b1307ad5 2014-02-15 kinaba: "NYNYYYNYNYNNNNNYYYNNNNNNNYYNYYYYNYYNNYYYNNNNNNNYYY", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNNNNNNNYYNNNYNNNNNYNYNYNNYYNNYNYNNNYNNNNYN", 42b1307ad5 2014-02-15 kinaba: "NYNYYYNNYYNYYNYNYYNYYYNYNYYNYYYYNYNNNNYYYYNYNNNYNY", 42b1307ad5 2014-02-15 kinaba: "NYNNYYNNNYNNYNNYYYNNYYNNNYYNYYNNNYYNNNNYNNNYNNNYYY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNYYNNNYNNNNNNNYNNYNYNNNYYNNNNNNNNYNN", 42b1307ad5 2014-02-15 kinaba: "YYYYNYYYYYYYYNYYYYNYYYYYYYYYYYNYYNYYYNYYYYYNNYYNYN", 42b1307ad5 2014-02-15 kinaba: "NYNYYNNYYYNYYNNYYYNYNYNYNYYNYYYYNYYNNYYYYYNYNNNNNY", 42b1307ad5 2014-02-15 kinaba: "NYNNNNNNNNNNNNNNYNNNYNNNNNYNYNYYNYNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNNNNNNNYYNNNNNNNNNNNYNYYNYYNNYNNNNNNNNNYYN", 42b1307ad5 2014-02-15 kinaba: "NYNYYYNNYYNYNNYYYYNYYYNYNYYYYNNYNNYNNYNYYYYNNNYYYY", 42b1307ad5 2014-02-15 kinaba: "NNNYYYNNNYNYYNNYYYNNYYNNNYYNYYYYNYYNNNYYNYNYNNNYYY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNNNNNNNYNNNNNNNNNYYNYYYYNYYNNYNNNNNNNNNYYN", 42b1307ad5 2014-02-15 kinaba: "YYNYYYNNYYNYYNYNYYNYNYNYNYYYYYYYNYNNNYYYYYNYNNYYYY", 42b1307ad5 2014-02-15 kinaba: "NYNYYYNNNNNNYNNNYYNNYYNNNYYNYYYYNYYNNYYYNNNNNNNYNY", 42b1307ad5 2014-02-15 kinaba: "YNNNYYYYYYYYYNYYYYYYYYYNNYYNYNYNYNNYYYYYYYNYNNYYYY", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNNNNNNNYYNNNYNNNNNYNYNYYNYYNNNNYNNNNNNNYNN", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNYYYNYYYNYNNNNYYNYYNNYNYYNYYYYNYYNNNNNYYNYNNYYNN", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNNNNNNNYYNNNYNNNNNNNNNYYNYYNNNNYNNNNNNNYYY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNYNNNYNNNNNYNNNYNNNNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNYYNNYYYNNNNNYYYNYYYNNNYYYYYYYNYYNNYYYYNNYNNNNYY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNYYNNNYNNNNNYNYNYYNNNNNYNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNNNNNNNNNNNNNNYNNNYNNNNNYNNNYYNNNNNNNNNNNNNNNYNN", 42b1307ad5 2014-02-15 kinaba: "NYNYYYYYNYYYYNYYYYYYNYYYNNNYYYYYNYYNYNYYYYYYNYYYNY", 42b1307ad5 2014-02-15 kinaba: "YYNYYYNYYYNNNNNYNYYYYNYNNNYYYYYYNYYNNYYNYNNYNNYNNY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNNNNNNNYYNNNNYNNNNYNYNNYNNNNNYNYNNNNNNNYNN", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNNNNNNNYYNNNNNNNNYYNYNYNNYYNNNNNNNNNNNNYNN", 42b1307ad5 2014-02-15 kinaba: "NYNYYYNYYYNYNNNNNYNNYYNYNNYNNYYYNYYNNYYYNNNNNNNYYY", 42b1307ad5 2014-02-15 kinaba: "NYNYYNNNNYNYYNNYYYNYYYNNNYYNYYYNNYYNNYYYNNNYNNNNYY", 42b1307ad5 2014-02-15 kinaba: "NYNYNYNYYYNYYNYYNYNYNYYYNNYYYYYYNNNNNYYYNYNYNNYNYY", 42b1307ad5 2014-02-15 kinaba: "NYNNNYNNNYNNNNNYYYNNYNNNNNYNYNNNNYYNNYNYNNNNNNNYYN", 42b1307ad5 2014-02-15 kinaba: "YYYNNYNYYYNYNNYYYYYNYYNYNYYYYYNYYNYNYYYYYNNYNNYNYN", 42b1307ad5 2014-02-15 kinaba: "YYNNYYYYYYYNYNYYNYYYYYYYYYYNYYYNYYYNNYYYYNYYNNYYYY", 42b1307ad5 2014-02-15 kinaba: "NYNNYYNYYYNNYNNYYYNYNYNYNYYNNYYNNYNNNYYYNYNYNNNNYY", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNYNNNNNNNNNNNNNYNNNNNNNNNNNNNNNNNNN", 42b1307ad5 2014-02-15 kinaba: "NNNNNNNNNNNNNNNNNNNNYNNNNNYNYNYNNNNNNYNNNNNNNNNYNN", 42b1307ad5 2014-02-15 kinaba: "NYNNYYNNNNNNNNNYYNNNNNNNNYYNYNNYNYYNNYNYNNNNNNNYNN"}; 42b1307ad5 2014-02-15 kinaba: vector <string> graph(graph_, graph_+sizeof(graph_)/sizeof(*graph_)); 42b1307ad5 2014-02-15 kinaba: int _ = 7; 42b1307ad5 2014-02-15 kinaba: END 42b1307ad5 2014-02-15 kinaba: CASE(5) 42b1307ad5 2014-02-15 kinaba: string graph_[] = { 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY", 42b1307ad5 2014-02-15 kinaba: }; 42b1307ad5 2014-02-15 kinaba: vector <string> graph(graph_, graph_+sizeof(graph_)/sizeof(*graph_)); 42b1307ad5 2014-02-15 kinaba: int _ = -1; 42b1307ad5 2014-02-15 kinaba: END 42b1307ad5 2014-02-15 kinaba: /* 42b1307ad5 2014-02-15 kinaba: CASE(6) 42b1307ad5 2014-02-15 kinaba: string graph_[] = ; 42b1307ad5 2014-02-15 kinaba: vector <string> graph(graph_, graph_+sizeof(graph_)/sizeof(*graph_)); 42b1307ad5 2014-02-15 kinaba: int _ = ; 42b1307ad5 2014-02-15 kinaba: END 42b1307ad5 2014-02-15 kinaba: */ 42b1307ad5 2014-02-15 kinaba: 42b1307ad5 2014-02-15 kinaba: } 42b1307ad5 2014-02-15 kinaba: // END CUT HERE