https://www.acmicpc.net/problem/21760
21760번: 야구 시즌
KOI 야구 리그에는 $N$개의 지역리그가 존재하고 각 지역리그에는 $M$개의 팀이 존재해서, 리그 전체로는 $N \times M$개의 팀으로 운영되고 있다. 한 시즌에 각 팀은 같은 지역리그 팀뿐만 아니라 다
www.acmicpc.net
[난이도] Bronze1
[유형] 수학
[풀이]
N,M,k,D가 모두 주어지고 A=k*B 이기 때문에 식을 잘 세워보면
미지수는 B밖에 남지 않는 다는 것을 알 수 있습니다.
식을 잘 정리한 뒤 반복문을 이용해 B가 조건을 만족하지 않을 때까지 증가시켜가며 B의 최적값을 찾아주면 됩니다.
#include <algorithm> using namespace std; using ll = long long; int T; ll N,M,k,D; int main(){ scanf("%d",&T); while(T--){ scanf("%lld%lld%lld%lld",&N,&M,&k,&D); ll B=0; while(N*M*B*(k*(M-1)+M*(N-1))<=2*D) B++; if(B<=1) { puts("-1"); continue; } ll a=N*M*(B-1)*(k*(M-1)+M*(N-1)); printf("%lld\n",a/2); } }
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Bronze1/21760.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Bronze2] 22341 : 사각형 면적 (C++) (0) | 2022.07.05 |
---|---|
[BOJ/백준][Gold1] 21761 : 초직사각형 (C++) (0) | 2022.07.05 |
[BOJ/백준][Silver1] 21758 : 꿀 따기 (C++) (0) | 2022.07.04 |
[BOJ/백준][Gold3] 21757 : 나누기 (C++) (0) | 2022.07.04 |
[BOJ/백준][Bronze2] 21756 : 지우개 (C++) (0) | 2022.07.04 |