This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
// 제2회 kriiICPC
// 
// 
#include <iostream>
#include <vector>
using namespace std;
int main(){
	int case_num;
	cin >> case_num;
	int A[12][2];
	int B[12][2];
	int orthotope[12]; //안겹칠 경우 -1, 한점에서 만나는경우 0, 선이 겹치는 경우 1
	int dot_point[12];
	//input
	for (int nc = 0; nc < case_num; nc++){
		orthotope[nc] = -1;
		dot_point[nc] = 0;
		for (int n = 0; n < 2; n++){
			cin >> A[nc][n];	
		}
	}
	for (int nc = 0; nc < case_num; nc++){
		for (int n = 0; n < 2; n++){
			cin >> B[nc][n];
		}
	}
	
	//
	
	for (int i = 0; i < case_num; i++){
		// 끝에서 걸칠 경우
		if (A[i][1] == B[i][0] || A[i][0] == B[i][0])  orthotope[i] = 0; //B[i][0]
		if (B[i][1] == A[i][0] || B[i][0] == A[i][0])  orthotope[i] = 0; //A[i][0]
		if (A[i][1] == B[i][1] || A[i][0] == B[i][0])	orthotope[i] = 0;
		if (A[i][0] == B[i][1]) dot_point[i] = 1;
		if (A[i][1] == B[i][0]) dot_point[i] = 1;
		//다른 선분 사이에 있을경우
		if (A[i][1] < B[i][1] && B[i][0] < A[i][1]) orthotope[i] = 1; //A[i][1]
		if (B[i][0] < A[i][0] && A[i][0] < B[i][1]) orthotope[i] = 1; // A[i][0]
		if (B[i][0] > A[i][0] && B[i][0] < A[i][1]) orthotope[i] = 1; // B[i][0]
		if (B[i][1] < A[i][1] && B[i][1] > A[i][0]) orthotope[i] = 1; // B[i][1]
	}
	int result = -1;
	int dot_result = 0;
	int dot_count = 0;
	for (int i = 0; i < case_num; i++){
		if (orthotope[i] > 0){
			if (result == -1) result = 0;
			result++;
		}
		dot_result += dot_point[i];
	}
	for (int i = 0; i < case_num; i++){
		if (orthotope[i] == 0){
			dot_count++;
		}
	}
	/*
	if ( result > 0)
		for (int i = 0; i < case_num; i++){
			if (orthotope[i] == 0){
				result++;
			}
		}
*/
	//output
	if (result == -1) {
		if (dot_result > 0) result = 1;
	}
	cout << result << endl;
	//cout << dot_result << endl;
	
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |