Submission #378291


Source Code Expand

#include<iostream>
#include<fstream>
#include<sstream>
#include<string>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<vector>
#include<list>
#include<algorithm>
#include<utility>
#include<complex>

using namespace std;

#define reE(i,a,b) for(auto (i)=(a);(i)<=(b);(i)++)
#define rE(i,b) reE(i,0,b)
#define reT(i,a,b) for(auto (i)=(a);(i)<(b);(i)++)
#define rT(i,b) reT(i,0,b)
#define rep(i,a,b) reE(i,a,b);
#define rev(i,a,b) for(auto (i)=(b)-1;(i)>=(a);(i)--)
#define fe(i,b) for (auto &(x):b);
#define itr(i,b) for(auto (i)=(b).begin();(i)!=(b).end();++(i))
#define rti(i,b) for(auto (i)=(b).rbegin();(i)!=(b).rend();++(i))
#define LL long long
#define all(b) (b).begin(),(b).end()

#define input_init stringstream ss; string strtoken, token; istringstream is
#define input_line  getline(cin, strtoken);is.str(strtoken);is.clear(istringstream::goodbit)
#define input_token(num) ss.str(""); ss.clear(stringstream::goodbit); getline(is, token, ','); ss << token; ss >> num

#define dir(xx,yy,x,y,i) (xx)=(x)+dir[(i)],(yy)=(y)+dir[(i)+1]

typedef complex<double> P;
typedef vector<P> Poly;

const LL INF = 1 << 30;
const double eps = 1e-8;
const int dir[] = { 0, 1, 0, -1, 0 };

bool state[1010][1010] = {false};
bool mstate[1010][3] = { false };
int m,n;
P points[1010];
P press[1010];
P ms[3];

bool game(){
	switch (m){
	case 1:{
		if (abs(ms[0] - points[0]) - press[0].real() > eps)return false;
		if (n>1)return false;
		return true;
	}
	case 2:{
		bool f = false;
		if (abs(ms[0] - points[0]) - press[0].real() <eps){
			if (n<2||abs(ms[1] - points[1]) - press[1].real() < eps)
				f = true;
		}
		else 
			if (abs(ms[1] - points[0]) - press[0].real() <eps)
				if (n<2||abs(ms[0] - points[1]) - press[1].real() < eps)
					f = true;
		reT(i, 2, n)
			if (abs(points[i] - points[i - 2]) - (press[i].real() - press[i - 1].real()) > eps)f = false;
		
		return f;
	}
	case 3:{
		rT(i, 3){
			if (abs(ms[i] - points[0]) - press[0].real() < eps)
				mstate[0][i] = true;
		}
		rT(i, 3)if (n > 1 && mstate[0][i])
			rT(j, 2)if (abs(ms[(i + 1 + j) % 3] - points[1]) - press[1].real() < eps)mstate[1][(i + 1 + (j ^ 1)) % 3] = true;
		reT(i,1, n-1){
			if (abs(points[i + 1] - points[i - 1]) - (press[i + 1].real() - press[i].real()) < eps){
				rT(j, 3)mstate[i + 1][j] = mstate[i][j];
				rT(j, i)state[i + 1][j] = state[i][j];
			}
			rT(j, 3)if (mstate[i][j] && abs(points[i + 1] - ms[j]) - press[i + 1].real() < eps)state[i + 1][i - 1] = true;
			rT(j, i)if (state[i][j] && abs(points[i + 1] - points[j]) - (press[i + 1].real()-press[j].imag()) < eps)state[i + 1][i - 1] = true;

		}
		rT(i, 3)if (mstate[n - 1][i])return true;
		rT(i, n)if (state[n - 1][i])return true;
		return false;
	}
	}
	return true;
}

int main(void){
	double x, y,s,e;

	cin >> m;
	rT(i, m){ cin >> x >> y; ms[i].real(x); ms[i].imag(y); }
	cin >> n;
	rT(i, n){ 
		cin >> x >> y >> s >> e;
		points[i].real(x);
		points[i].imag(y);
		press[i].real(s);
		press[i].imag(e);
		if (i > 0 && points[i] == points[i - 1]){
			press[i - 1].imag(press[i].imag()); i--; n--;
		}
	}
	if (game())cout << "YES" << endl;
	else cout << "NO" << endl;
	

	return(0);
}

Submission Info

Submission Time
Task D - ラボライブ タフグローバルフェスティバル
User btk15049
Language C++11 (GCC 4.9.2)
Score 200
Code Size 3338 Byte
Status AC
Exec Time 38 ms
Memory 1804 KB

Judge Result

Set Name All
Score / Max Score 200 / 200
Status
AC × 54
Set Name Test Cases
All scrambled_00.txt, scrambled_01.txt, scrambled_02.txt, scrambled_03.txt, scrambled_04.txt, scrambled_05.txt, scrambled_06.txt, scrambled_07.txt, scrambled_08.txt, scrambled_09.txt, scrambled_10.txt, scrambled_11.txt, scrambled_12.txt, scrambled_13.txt, scrambled_14.txt, scrambled_15.txt, scrambled_16.txt, scrambled_17.txt, scrambled_18.txt, scrambled_19.txt, scrambled_20.txt, scrambled_21.txt, scrambled_22.txt, scrambled_23.txt, scrambled_24.txt, scrambled_25.txt, scrambled_26.txt, scrambled_27.txt, scrambled_28.txt, scrambled_29.txt, scrambled_30.txt, scrambled_31.txt, scrambled_32.txt, scrambled_33.txt, scrambled_34.txt, scrambled_35.txt, scrambled_36.txt, scrambled_37.txt, scrambled_38.txt, scrambled_39.txt, scrambled_40.txt, scrambled_41.txt, scrambled_42.txt, scrambled_43.txt, scrambled_44.txt, scrambled_45.txt, scrambled_46.txt, scrambled_47.txt, scrambled_48.txt, scrambled_49.txt, scrambled_50.txt, scrambled_51.txt, scrambled_52.txt, scrambled_53.txt
Case Name Status Exec Time Memory
scrambled_00.txt AC 26 ms 928 KB
scrambled_01.txt AC 25 ms 924 KB
scrambled_02.txt AC 26 ms 924 KB
scrambled_03.txt AC 38 ms 1800 KB
scrambled_04.txt AC 36 ms 1804 KB
scrambled_05.txt AC 38 ms 1804 KB
scrambled_06.txt AC 27 ms 928 KB
scrambled_07.txt AC 25 ms 928 KB
scrambled_08.txt AC 26 ms 916 KB
scrambled_09.txt AC 26 ms 924 KB
scrambled_10.txt AC 26 ms 928 KB
scrambled_11.txt AC 26 ms 920 KB
scrambled_12.txt AC 26 ms 920 KB
scrambled_13.txt AC 25 ms 804 KB
scrambled_14.txt AC 26 ms 928 KB
scrambled_15.txt AC 26 ms 924 KB
scrambled_16.txt AC 26 ms 928 KB
scrambled_17.txt AC 26 ms 928 KB
scrambled_18.txt AC 24 ms 932 KB
scrambled_19.txt AC 25 ms 904 KB
scrambled_20.txt AC 25 ms 928 KB
scrambled_21.txt AC 27 ms 928 KB
scrambled_22.txt AC 26 ms 864 KB
scrambled_23.txt AC 26 ms 924 KB
scrambled_24.txt AC 25 ms 872 KB
scrambled_25.txt AC 30 ms 1036 KB
scrambled_26.txt AC 27 ms 924 KB
scrambled_27.txt AC 27 ms 1032 KB
scrambled_28.txt AC 27 ms 904 KB
scrambled_29.txt AC 30 ms 904 KB
scrambled_30.txt AC 27 ms 924 KB
scrambled_31.txt AC 26 ms 920 KB
scrambled_32.txt AC 25 ms 928 KB
scrambled_33.txt AC 28 ms 928 KB
scrambled_34.txt AC 27 ms 864 KB
scrambled_35.txt AC 28 ms 904 KB
scrambled_36.txt AC 27 ms 924 KB
scrambled_37.txt AC 28 ms 800 KB
scrambled_38.txt AC 25 ms 920 KB
scrambled_39.txt AC 26 ms 924 KB
scrambled_40.txt AC 26 ms 928 KB
scrambled_41.txt AC 26 ms 840 KB
scrambled_42.txt AC 24 ms 996 KB
scrambled_43.txt AC 25 ms 924 KB
scrambled_44.txt AC 26 ms 932 KB
scrambled_45.txt AC 27 ms 800 KB
scrambled_46.txt AC 26 ms 928 KB
scrambled_47.txt AC 25 ms 864 KB
scrambled_48.txt AC 25 ms 924 KB
scrambled_49.txt AC 25 ms 932 KB
scrambled_50.txt AC 27 ms 804 KB
scrambled_51.txt AC 27 ms 924 KB
scrambled_52.txt AC 30 ms 932 KB
scrambled_53.txt AC 29 ms 940 KB