루오 밸리 P1056 [NOIP2008] 유저 행

문제의 의미를 점프

우리는 인간의 환경 이야기하면 아주 간단한 욕심이 문제는 분명히 열 또는 행에 대해, 이상의 방법으로 분리.

주문 출력을 참고

1 #INCLUDE <cstdio>
 2 #INCLUDE <iostream>
 3 #INCLUDE <CString을>
 4 #INCLUDE <알고리즘>
 5  
6  이용한  스페이스 성병;
7  
8  구조체 노드
 9  {
 10      의 INT NUM;
11      INT의 데이터;
12  };
13 노드 거짓 [ 1,005 ] 헹의 [ 1005 ];
14  INT의 N, M, K, L, D;
15  
16 인라인 부울 CMP (노드 X, 노드 Y)
 17  {
 18      반환 x.data>y.data;
19  }
 20  
21  INT ) (주
 22  {
 23      는 scanf ( " % D % D % D % D % D " , m, N, K, L, d);
24       ( int로 = 1을 1 ; I <= m; I ++ )
 25          헹 [I] = .num I;
(26)      에 대한이 ( int로 I = 1 ; i가 N = <; 내가 ++ )
 27          거짓 [I] = .num I;
28       ( int로 = 1을 1 ; ++; 나는 = D < I)
 29      {
 30          지능X1, Y1, X2, Y2;
31          는 scanf ( " % D % D % D % D " , X1, Y1, X2, Y2);
(32)          만약 (X1의 ==의 X2)
 33          {
 34              INT의 p = 분 (Y1, Y2);
35              거짓 [P] .DATA ++ ;
36          }
 37          
38          {
 39              INT의 p = 분 (X1, X2);
40              헹 [피] .DATA ++ ;
41          }
 42      }
 43      정렬 (헹 + 1 , N + 헹 + 1 , CMP);
(44)     INT ans_heng [ 1005 ];
(45)      에 대한이 ( 값 int = 1을 1 ; 나는 <= K를, 난 ++ )
 46          ans_heng [I] = 헹 [I] .num 단계;
47      정렬 (ans_heng + 1 , ans_heng + K + 1 );
(48)      에 대한이 ( 값 int = 1을 1 ; 나는 <= K가 나는 ++ )
 (49)          의 printf ( " %의 D " , ans_heng [I]);
50      의 printf ( " \ n을 " );
51      정렬 (거짓말 + 1 , + 거짓말의 m + 1 , CMP);
(52)     INT ans_lie [ 1005 ];
(53)      에 대한이 ( 값 int = 1을 1 ] 나가 = 1을 <; 내가 ++ )
 54          ans_lie [내가] = 거짓 [I] .num;
55      정렬 (ans_lie + 1 , ans_lie + 1 + 1 );
(56)      에 대한이 ( 값 int = 1을 1 ] 나가 = 1을 <; 나는 ++ )
 (57)          의 printf ( " %의 D " , ans_lie [I]);
58      반환  0 ;
59 }
P1056 코드

 

추천

출처www.cnblogs.com/Hoyoak/p/11361003.html