// 제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 |
1 |
Correct |
0 ms |
1672 KB |
Output is correct |
2 |
Correct |
0 ms |
1672 KB |
Output is correct |
3 |
Correct |
0 ms |
1672 KB |
Output is correct |
4 |
Correct |
0 ms |
1672 KB |
Output is correct |
5 |
Incorrect |
0 ms |
1672 KB |
Output isn't correct |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Halted |
0 ms |
0 KB |
- |