View Code of Problem 67

#include <iostream>
using namespace std;

/*同一条直线的情况*/

double x1, x2, x3, x4;
double y1, y2, y3, y4;

int main() {
	while(cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3 >> x4 >> y4) {
		double dx1 = x2 - x1;
		double dy1 = y2 - y1;
		double dx2 = x4 - x3;
		double dy2 = y4 - y3;
		int f = 1;
		if(dx1 || dx2) {
			double k1 = dy1 / dx1;
			double k2 = dy2 / dx2;
			if(k1 == k2 && (y2 - k1 * x2) != (y4 - k2 * x4)) f = 0; // 斜率同,但是为两条不同的直线
		}
		else if(dx1 == 0 && dx2 == 0 && x3 != x1) f = 0; // 垂直,但是为两条不同的直线
		if(f) cout << "Yes" << endl;
		else cout << "No" << endl;
	}
	return 0;
}

Double click to view unformatted code.


Back to problem 67