이 문제의 해결을 처리 욕심쟁이 부

 

 

 

1,019 : B06- 그리 - 가공 부품 [향상 기]

제한 시간 : 1 초 메모리 제한 : 128 MB의
제출 : 24 솔루션 : 7
[ 제출 ] [ ] [ 토론 게시판 ] [제안 남자 : 외부 가져 오기]

제목 설명

      부품의 최근 작은 장인 K n을 가공 할 수 있습니다. 각 부분이 완료 TI 일을 필요로 지연 처리의 매일의 각 부분은 어떤 좋은시를 지불해야합니다. 일 근무에 날부터 계산 지연 일 수는 첫 번째 부분은 잘 작동하지 않는 경우, 시작했다. 이제 작은 K는 주문 처리가 그를 최소한으로 벌금을 지불 할 수 배열하는 방법을 알고 싶어요, 최소이다.
      이 값은 모듈로 m의 수가 매우 크고, 그 결과를 출력 할 수있다.

 

기입

파일 이름 process.in을 입력합니다.
제 라인 입력 정수 n은, 부품의 수는 가공 할.
제 m의 정수를 실시 m은 응답하도록 모듈을 나타낸다.
의 3 ~ N + 2 행, 각 행에 두 개의 정수 TI와시.

 

수출

출력 파일 이름 process.out.
오직 하나 개의 라인 출력 정수, K는 최소 모듈러스 m 지불 작은 페널티의 결과를 나타낸다.

 

샘플 입력

2 
100 
2 33 
33 2

 

샘플 출력

4

 

신속한

[1] 입출력 샘플 설명

 

제 처리부는 이틀, 제 재가공 걸린다. 2 × 2 = 4의 벌금을 지불해야합니다.

 

샘플 2 [O] process.in                      

4

(100)

3 3

6 4

2 2

8 5                                

 

process.out

(81)

 

[O 2] 샘플 사전

1 → 2 → 3 → 4의 처리 순서는, 그것의 미세 지불 할 필요가있는 경우에는 0 × 3 + 3 + 4 × (3 + 6) × 2 +

(3 + 6 + 2) × 5 = 85;

최상의 해결책이 시간은 미세 0 × 2 + 2 × 3 + (2 + 3) × 4 + (+ 6 2 + 3) × 5 = 81을 지불해야하고, 3 → 1 → 2 → 4.

[데이터 범위]

데이터의 40 %, 0 < N- ≤10,000,0 < T I , S I ≤ 10,000;

0 <데이터의 80 % N- ≤100,000,0 < T I , S I ≤2 × 10 . 9 , 0 < m ≦ 10 . 8 ,
데이터의 100 %, 0 < N- ≤100,000,0 < 티타늄 , 실리콘 ≤ 2 × 10 . 9 , 0 < m ≦ 10 18이다 .

소스 / 분류

질문은 이렇게 열심히 오리 자처럼 보인다

 

 위 () ( "만약", "생각")을 설명하는 선생님을 위해 발행

음, 양의 솔루션은 카드 카드에서 때문에 그것을 시도

 

추천

출처www.cnblogs.com/Tidoblogs/p/11260264.html