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
   
   //input
   for (int nc = 0; nc < case_num; nc++){
      orthotope[nc] = -1;
   
      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][0] > B[i][1] || A[i][1] < B[i][0]) {
         orthotope[i] = -1;
      }
      else{
         // 점으로 만난 경우
         if (A[i][1] == B[i][0] ||
            B[i][1] == A[i][0] )  orthotope[i] = 0; 
         else{
            orthotope[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_count = 0;
   for (int i = 0; i < case_num; i++){
      if (orthotope[i] == -1){
         result = -1; break;
      }
      else if (orthotope[i] > 0){
         if (result == -1) result = 0;
         result++;
      }
      else if (orthotope[i] == 0) dot_count++;
   }
   
   if (result == -1 && dot_count == case_num) result = 0;
   cout << result << endl;
   
}
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict | Execution time | Memory | Grader output | 
|---|
| Fetching results... |