※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 1341번 문제인 사이좋은 형제이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/1341
남아있는 케이크를 길이가
구현에 따라 64비트 정수 자료형을 이용해도 오버플로우가 발생할 수 있으니 유의하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <string>
using namespace std;
typedef long long ll;
typedef __int128 lll;
ll AA, BB;
lll A, B;
lll b = 1;
string ans;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> AA >> BB;
A = AA, B = BB;
while (b <= 9223372036854775807LL && b % B) {
b = b * 2 + 1;
}
if (b > 9223372036854775807LL) {
cout << -1;
return 0;
}
A *= b / B;
while (b) {
if (A & 1) ans += '*';
else ans += '-';
A >>= 1, b >>= 1;
}
if (ans.length() > 60) cout << -1;
else {
while (!ans.empty()) {
cout << ans.back();
ans.pop_back();
}
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 5526 // C++] ダーツ (Darts) (2) | 2024.10.21 |
---|---|
[BOJ 1229 // C++] 육각수 (1) | 2024.10.18 |
[BOJ 23615 // C++] Product (4) | 2024.10.16 |
[BOJ 10009 // C++] Loteria 2 (4) | 2024.10.15 |
[BOJ 18066 // C++] Move & Meet (7) | 2024.10.14 |