[문제 링크] : https://www.acmicpc.net/problem/2858
#include <iostream>
using namespace std;
int R, B, S;
bool flag;
void solve(int cnt, int tmp){
int r = 0, b = 0;
for(int i=0; i<tmp; i++){
for(int j=0; j<cnt; j++){
if(i == 0 || j == 0 || i == tmp - 1 || j == cnt - 1){
r++;
}
else{
b++;
}
}
}
if(r == R && b == B){
flag = true;
return;
}
return;
}
int main(){
cin >> R >> B;
S = R + B;
int l = 1;
while(true){
if(S % l == 0){
int tmp = l;
int cnt = S / l;
solve(tmp, cnt);
if(flag == true){
cout << cnt << " " << tmp << "\n";
return 0;
}
}
l++;
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[알고리즘] 백준 3449 - 해밍 거리 (C++) (0) | 2025.02.28 |
---|---|
[알고리즘] 백준 17202 - 핸드폰 번호 궁합 (C++) (0) | 2025.02.27 |
[알고리즘] 백준 29731 - 2033년 밈 투표 (C++) (0) | 2025.02.25 |
[알고리즘] 백준 13597 - Tri-du (C++) (0) | 2025.02.24 |
[알고리즘] 백준 10419 - 지각 (C++) (0) | 2025.02.23 |