RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R00688

공장 생산 계획의 최댓값

Diamond I 다이아몬드 I
난이도
5s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

어느 공장에서 \(n\) 가지 제품을 생산한다. 제품 \(j\)\(x_j\) 단위 생산하면 단위당 이익 \(c_j\) 가 발생하여 총 이익은 \(\sum_{j=1}^{n} c_j x_j\) 이다. 생산량 \(x_j\)\(0\) 이상의 실수일 수 있다.

공장에는 \(m\) 가지 자원 제약이 있다. \(i\) 번째 자원은 총량이 \(b_i\) 로 한정되어 있으며, 제품 \(j\) 한 단위를 만들 때 자원 \(i\)\(a_{ij}\) 만큼 소비한다. 따라서 각 자원 \(i\) 에 대해 $$ \sum_{j=1}^{n} a_{ij} x_j \le b_i $$ 를 만족해야 한다.

모든 제약을 지키면서 총 이익을 최대로 만들 때, 그 최댓값을 구하여라. 최적값은 항상 유리수이며, 기약분수 분자/분모 형태로 출력한다 (정수인 경우에도 분모를 \(1\) 로 하여 값/1 형태로 출력한다).

모든 \(c_j, a_{ij} \ge 0\) 이고 각 변수는 적어도 하나의 제약에서 양의 계수를 가지므로, 실현 가능 영역은 유계이며 최적값이 항상 존재한다.

제약

\(1 \le n, m \le 40\)

\(0 \le c_j \le 1000\)

\(0 \le a_{ij} \le 1000\)

\(1 \le b_i \le 1000\)

각 변수 \(x_j\) 는 적어도 하나의 제약에서 양의 계수 \(a_{ij} > 0\) 을 가진다.

입력 형식

첫 줄에 두 정수 \(n\)\(m\) 이 주어진다.

둘째 줄에 \(n\) 개의 정수 \(c_1, \dots, c_n\) 이 주어진다.

이어서 \(m\) 개의 줄에 각 제약이 주어진다. \(i\) 번째 줄에는 \(n+1\) 개의 정수 \(a_{i1}, a_{i2}, \dots, a_{in}, b_i\) 가 주어진다.

출력 형식

총 이익의 최댓값을 기약분수 분자/분모 형태로 한 줄에 출력한다.

예제 1
입력
2 2
3 2
1 1 4
1 3 6
출력
12/1
설명

제약 \(x+y\le4\), \(x+3y\le6\) 하에서 \(3x+2y\) 의 최댓값은 \((x,y)=(4,0)\) 에서 \(12\). 따라서 12/1.

예제 2
입력
2 2
5 4
6 4 24
1 2 6
출력
21/1
설명

\(6x+4y\le24\), \(x+2y\le6\) 하에서 \(5x+4y\) 의 최댓값은 \((x,y)=(3,\tfrac32)\) 에서 \(21\). 답은 21/1.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

공장 생산 계획의 최댓값

개요
출제자 난이도 Diamond I 다이아몬드 I 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

공장 생산 계획의 최댓값

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8