File Annotation
Not logged in
892b20bec8 2015-04-28        kinaba: #include <iostream>
892b20bec8 2015-04-28        kinaba: #include <sstream>
892b20bec8 2015-04-28        kinaba: #include <iomanip>
892b20bec8 2015-04-28        kinaba: #include <vector>
892b20bec8 2015-04-28        kinaba: #include <string>
892b20bec8 2015-04-28        kinaba: #include <map>
892b20bec8 2015-04-28        kinaba: #include <set>
892b20bec8 2015-04-28        kinaba: #include <algorithm>
892b20bec8 2015-04-28        kinaba: #include <numeric>
892b20bec8 2015-04-28        kinaba: #include <iterator>
892b20bec8 2015-04-28        kinaba: #include <functional>
892b20bec8 2015-04-28        kinaba: #include <complex>
892b20bec8 2015-04-28        kinaba: #include <queue>
892b20bec8 2015-04-28        kinaba: #include <stack>
892b20bec8 2015-04-28        kinaba: #include <cmath>
892b20bec8 2015-04-28        kinaba: #include <cassert>
892b20bec8 2015-04-28        kinaba: #include <tuple>
892b20bec8 2015-04-28        kinaba: using namespace std;
892b20bec8 2015-04-28        kinaba: typedef long long LL;
892b20bec8 2015-04-28        kinaba: typedef complex<double> CMP;
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: double outer_prod(const CMP& a, const CMP& b) { return imag(conj(a)*b); }
892b20bec8 2015-04-28        kinaba: double inner_prod(const CMP& a, const CMP& b) { return real(conj(a)*b); }
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: int ccw(const CMP& a, CMP b, CMP c) {
892b20bec8 2015-04-28        kinaba: 	b -= a; c -= a;
892b20bec8 2015-04-28        kinaba: 	if( outer_prod(b,c) > 0 ) return +1; // counter clockwise
892b20bec8 2015-04-28        kinaba: 	if( outer_prod(b,c) < 0 ) return -1; // clockwise
892b20bec8 2015-04-28        kinaba: 	if( inner_prod(b,c) < 0 ) return +2; // c--a--b on line
892b20bec8 2015-04-28        kinaba: 	if( norm(b) < norm(c) )   return -2; // a--b--c on line
892b20bec8 2015-04-28        kinaba: 	return 0;
892b20bec8 2015-04-28        kinaba: }
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: bool byX( const CMP& a, const CMP& b ) {
892b20bec8 2015-04-28        kinaba: 	if( a.real() != b.real() )
892b20bec8 2015-04-28        kinaba: 		return a.real() < b.real();
892b20bec8 2015-04-28        kinaba: 	return a.imag() < b.imag();
892b20bec8 2015-04-28        kinaba: }
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: vector<CMP> convex_hull( vector<CMP> p )
892b20bec8 2015-04-28        kinaba: {
892b20bec8 2015-04-28        kinaba: 	#define IS_RIGHT <0   // skip on-line verts
892b20bec8 2015-04-28        kinaba: 	//#define IS_RIGHT ==-1 // take all
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 	sort(p.begin(), p.end(), &byX);
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 	vector<CMP> ans;
892b20bec8 2015-04-28        kinaba: 	for(int i=0; i<p.size(); ans.push_back(p[i++])) // left-to-right
892b20bec8 2015-04-28        kinaba: 		while( ans.size()>=2 && ccw(ans[ans.size()-2], ans[ans.size()-1], p[i]) IS_RIGHT )
892b20bec8 2015-04-28        kinaba: 			ans.pop_back();
892b20bec8 2015-04-28        kinaba: 	if( ans.size() == p.size() )
892b20bec8 2015-04-28        kinaba: 		return ans;
892b20bec8 2015-04-28        kinaba: 	for(int i=p.size()-2; i>=0; ans.push_back(p[i--])) // right-to-left
892b20bec8 2015-04-28        kinaba: 		while( ans.size()>=2 && ccw(ans[ans.size()-2], ans[ans.size()-1], p[i]) IS_RIGHT )
892b20bec8 2015-04-28        kinaba: 			ans.pop_back();
892b20bec8 2015-04-28        kinaba: 	ans.pop_back();
892b20bec8 2015-04-28        kinaba: 	return ans;
892b20bec8 2015-04-28        kinaba: }
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: bool point_in_polygon( vector<CMP>& ps, CMP p )
892b20bec8 2015-04-28        kinaba: {
892b20bec8 2015-04-28        kinaba: 	bool in = false;
892b20bec8 2015-04-28        kinaba: 	for(int i=0; i<ps.size(); ++i) {
892b20bec8 2015-04-28        kinaba: 		CMP a = ps[i] - p;
892b20bec8 2015-04-28        kinaba: 		CMP b = ps[(i+1)%ps.size()] - p;
892b20bec8 2015-04-28        kinaba: 		if(a.imag() > b.imag()) swap(a,b);
892b20bec8 2015-04-28        kinaba: 		if(a.imag()<=0 && 0<b.imag()) {
892b20bec8 2015-04-28        kinaba: 			if( outer_prod(a,b) < 0 )
892b20bec8 2015-04-28        kinaba: 				in = !in;
892b20bec8 2015-04-28        kinaba: 		}
892b20bec8 2015-04-28        kinaba: 		//if( outer_prod(a,b)==0 && inner_prod(a,b)<=0 ) return ON;
892b20bec8 2015-04-28        kinaba: 	}
892b20bec8 2015-04-28        kinaba: 	return in;
892b20bec8 2015-04-28        kinaba: }
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: class BichromeSky { public:
892b20bec8 2015-04-28        kinaba: 	double totallyCovered(vector <int> redX, vector <int> redY, vector <int> prob, vector <int> blueX, vector <int> blueY)
892b20bec8 2015-04-28        kinaba: 	{
892b20bec8 2015-04-28        kinaba: 		vector<CMP> blue;
892b20bec8 2015-04-28        kinaba: 		for(int i=0; i<blueX.size(); ++i)
892b20bec8 2015-04-28        kinaba: 			blue.emplace_back(CMP(blueX[i], blueY[i]));
892b20bec8 2015-04-28        kinaba: 		blue = convex_hull(blue);
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		vector<CMP> red;
892b20bec8 2015-04-28        kinaba: 		vector<double> p_red;
892b20bec8 2015-04-28        kinaba: 		for(int i=0; i<redX.size(); ++i) {
892b20bec8 2015-04-28        kinaba: 			CMP p = CMP(redX[i], redY[i]);
892b20bec8 2015-04-28        kinaba: 			if(!point_in_polygon(blue, p)) {
892b20bec8 2015-04-28        kinaba: 				red.emplace_back(p);
892b20bec8 2015-04-28        kinaba: 				p_red.emplace_back(prob[i] / 1000.0);
892b20bec8 2015-04-28        kinaba: 			}
892b20bec8 2015-04-28        kinaba: 		}
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		// trivial
892b20bec8 2015-04-28        kinaba: 		if(red.size() <= 2)
892b20bec8 2015-04-28        kinaba: 			return 0.0;
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		// trivial
892b20bec8 2015-04-28        kinaba: 		vector<CMP> red_hull = convex_hull(red);
892b20bec8 2015-04-28        kinaba: 		for(auto p: blue)
892b20bec8 2015-04-28        kinaba: 			if(!point_in_polygon(red_hull, p))
892b20bec8 2015-04-28        kinaba: 				return 0.0;
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		vector<pair<CMP,double>> rp;
892b20bec8 2015-04-28        kinaba: 		for(int i=0; i<red.size(); ++i)
892b20bec8 2015-04-28        kinaba: 			rp.emplace_back(red[i], p_red[i]);
892b20bec8 2015-04-28        kinaba: 		const int N = rp.size();
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		CMP base = *min_element(red.begin(), red.end(), [](const CMP& lhs, const CMP& rhs){
892b20bec8 2015-04-28        kinaba: 			if(lhs.imag() != rhs.imag()) return lhs.imag() < rhs.imag();
892b20bec8 2015-04-28        kinaba: 			return lhs.real() < rhs.real();
892b20bec8 2015-04-28        kinaba: 		});
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		sort(rp.begin(), rp.end(), [&](const pair<CMP,double>& lhs, const pair<CMP,double>& rhs) {
892b20bec8 2015-04-28        kinaba: 			if(lhs == rhs) return false;
892b20bec8 2015-04-28        kinaba: 			if(lhs.first == base) return true;
892b20bec8 2015-04-28        kinaba: 			if(rhs.first == base) return false;
892b20bec8 2015-04-28        kinaba: 			return arg(lhs.first - base) < arg(rhs.first - base);
892b20bec8 2015-04-28        kinaba: 		});
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		function<bool(int,int)> is_right_of_blue = [&](int ai, int bi) {
892b20bec8 2015-04-28        kinaba: 			CMP a = rp[ai%N].first;
892b20bec8 2015-04-28        kinaba: 			CMP b = rp[bi%N].first;
892b20bec8 2015-04-28        kinaba: 			for(CMP p: blue)
892b20bec8 2015-04-28        kinaba: 				if(ccw(a, b, p) != +1)
892b20bec8 2015-04-28        kinaba: 					return false;
892b20bec8 2015-04-28        kinaba: 			return true; // TODO
892b20bec8 2015-04-28        kinaba: 		};
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		function<double(int,int)> rec;
892b20bec8 2015-04-28        kinaba: 		map<pair<int,int>, double> memo;
892b20bec8 2015-04-28        kinaba: 		rec = [&](int done_from, int done_to) {
892b20bec8 2015-04-28        kinaba: 			if(done_from == done_to)
892b20bec8 2015-04-28        kinaba: 				return 1.0;
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 			pair<int,int> key(done_from, done_to);
892b20bec8 2015-04-28        kinaba: 			if(memo.count(key))
892b20bec8 2015-04-28        kinaba: 				return memo[key];
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 			double total = 0.0;
892b20bec8 2015-04-28        kinaba: 			double pp = 1.0;
892b20bec8 2015-04-28        kinaba: 			for(int next=done_to+1; next<=done_from; ++next) {
892b20bec8 2015-04-28        kinaba: 				if(is_right_of_blue(done_to, next)) {
892b20bec8 2015-04-28        kinaba: 					total += pp * (next==done_from ? 1.0 : rp[next].second) * rec(next, done_from);
892b20bec8 2015-04-28        kinaba: 				}
892b20bec8 2015-04-28        kinaba: 				pp *= 1.0 - rp[next].second;
892b20bec8 2015-04-28        kinaba: 			}
892b20bec8 2015-04-28        kinaba: 			return memo[key] = total;
892b20bec8 2015-04-28        kinaba: 		};
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		double ans = 0.0;
892b20bec8 2015-04-28        kinaba: 		for(int from=N; from>=2; --from)
892b20bec8 2015-04-28        kinaba: 		for(int to=1; to<from; ++to) {
892b20bec8 2015-04-28        kinaba: 			if(is_right_of_blue(from, to)) {
892b20bec8 2015-04-28        kinaba: 				double pp = 1.0;
892b20bec8 2015-04-28        kinaba: 				for(int k=(from+1)%N; k!=to; k=(k+1)%N)
892b20bec8 2015-04-28        kinaba: 					pp *= 1.0 - rp[k].second;
892b20bec8 2015-04-28        kinaba: 				ans += rp[from%N].second * rp[to].second * pp * rec(from, to);
892b20bec8 2015-04-28        kinaba: 			}
892b20bec8 2015-04-28        kinaba: 		}
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: 		return ans;
892b20bec8 2015-04-28        kinaba: 	}
892b20bec8 2015-04-28        kinaba: };
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: // BEGIN CUT HERE
892b20bec8 2015-04-28        kinaba: #include <ctime>
892b20bec8 2015-04-28        kinaba: double start_time; string timer()
892b20bec8 2015-04-28        kinaba:  { ostringstream os; os << " (" << int((clock()-start_time)/CLOCKS_PER_SEC*1000) << " msec)"; return os.str(); }
892b20bec8 2015-04-28        kinaba: template<typename T> ostream& operator<<(ostream& os, const vector<T>& v)
892b20bec8 2015-04-28        kinaba:  { os << "{ ";
892b20bec8 2015-04-28        kinaba:    for(typename vector<T>::const_iterator it=v.begin(); it!=v.end(); ++it)
892b20bec8 2015-04-28        kinaba:    os << '\"' << *it << '\"' << (it+1==v.end() ? "" : ", "); os << " }"; return os; }
892b20bec8 2015-04-28        kinaba: void verify_case(const double& Expected, const double& Received) {
892b20bec8 2015-04-28        kinaba:  bool ok = (abs(Expected - Received) < 1e-9);
892b20bec8 2015-04-28        kinaba:  if(ok) cerr << "PASSED" << timer() << endl;  else { cerr << "FAILED" << timer() << endl;
892b20bec8 2015-04-28        kinaba:  cerr << "\to: \"" << Expected << '\"' << endl << "\tx: \"" << Received << '\"' << endl; } }
892b20bec8 2015-04-28        kinaba: #define CASE(N) {cerr << "Test Case #" << N << "..." << flush; start_time=clock();
892b20bec8 2015-04-28        kinaba: #define END	 verify_case(_, BichromeSky().totallyCovered(redX, redY, prob, blueX, blueY));}
892b20bec8 2015-04-28        kinaba: int main(){
892b20bec8 2015-04-28        kinaba: 
892b20bec8 2015-04-28        kinaba: CASE(0)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = {3,-3,0};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = {-1,-1,2};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = {400,500,600};
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = {1,0,-1};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = {0,1,0};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = 0.12;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: CASE(1)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = {3,-3,3,-3};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = {3,3,-3,-3};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = {200,300,400,500};
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = {0,1,-1};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = {-1,-2,-2};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = 0.088;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: CASE(2)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = {3,-3,0};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = {-1,-1,2};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = {400,500,600};
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = {1,0,-1,123456};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = {0,1,0,-654321};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = 0.0;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: CASE(3)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = {0,-2,-3,-4,-3,-2,0,2,3,4,3,2};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = {4,3,2,0,-2,-3,-4,-3,-2,0,2,3};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = {501,502,503,504,505,506,507,508,509,510,511,512};
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = {1,-1,-1,1};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = {1,1,-1,-1};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = 0.6555037822772468;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: CASE(4)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = {0,1,-3,3};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = {0,4,-2,-2};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = {200,300,400,500};
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = {0,-1,1};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = {1,-1,-1};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = 0.06;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: CASE(5)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = {10,-17,12,-11,-13,-10,-15,14,-4,2};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = {8,17,-13,-19,-14,11,17,8,-8,-15};
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = {412,360,656,876,984,160,368,873,223,128};
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = {-9,-3,6,-9,-5,4,-3,10,-7,2};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = {-6,10,10,-9,-10,-6,2,-10,-9,6};
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = 0.34037052019900405;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: /*
892b20bec8 2015-04-28        kinaba: CASE(6)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = ;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: CASE(7)
892b20bec8 2015-04-28        kinaba: 	int redX_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> redX(redX_, redX_+sizeof(redX_)/sizeof(*redX_));
892b20bec8 2015-04-28        kinaba: 	int redY_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> redY(redY_, redY_+sizeof(redY_)/sizeof(*redY_));
892b20bec8 2015-04-28        kinaba: 	int prob_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> prob(prob_, prob_+sizeof(prob_)/sizeof(*prob_));
892b20bec8 2015-04-28        kinaba: 	int blueX_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueX(blueX_, blueX_+sizeof(blueX_)/sizeof(*blueX_));
892b20bec8 2015-04-28        kinaba: 	int blueY_[] = ;
892b20bec8 2015-04-28        kinaba: 	  vector <int> blueY(blueY_, blueY_+sizeof(blueY_)/sizeof(*blueY_));
892b20bec8 2015-04-28        kinaba: 	double _ = ;
892b20bec8 2015-04-28        kinaba: END
892b20bec8 2015-04-28        kinaba: */
892b20bec8 2015-04-28        kinaba: }
892b20bec8 2015-04-28        kinaba: // END CUT HERE