A. Red and Blue Beans
C++
#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0), cin.tie(0)
#define all(c) c.begin(), c.end()
#define INF 1e9
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
int main(){
fastio;
int tc;
cin >> tc;
while(tc--){
int r, b, d;
cin >> r >> b >> d;
int mi = min(r, b);
int ma = max(r, b);
if(ceil(ma*1.0/(1+d)) <= mi) cout << "YES\n";
else cout << "NO\n";
}
return 0;
}
red, blue 중 작은 값을 하나씩 쪼개어 큰 값에서 1+d (가능한 최대 차이) 씩 줄여나갈 때 값이 남지 않으면 YES 를 남으면 NO 를 출력하면 된다. 큰 값을 1+d 로 나눈 몫을 작은 값과 비교하면 분배할 수 있는지를 판단할 수 있다.
B. The Cake Is a Lie
C++
#include <bits/stdc++.h>
#define fastio ios::sync_with_stdio(0), cin.tie(0)
#define all(c) c.begin(), c.end()
#define INF 1e9
typedef long long ll;
typedef unsigned long long ull;
using namespace std;
int main(){
fastio;
vector<vector<int>> g(100, vector<int>(100, 0));
for(int y = 0; y < 100; y++) g[y][0] = y;
for(int y = 0; y < 100; y++){
for(int x = 1; x < 100; x++){
g[y][x] = g[y][x-1] + y+1;
}
}
int tc;
cin >> tc;
while(tc--){
int n, m, k;
cin >> n >> m >> k;
cout << (g[n-1][m-1] == k ? "YES" : "NO") << "\n";
}
return 0;
}
항상 오른쪽, 아래 로만 이동할 수 있으므로 모든 좌표에서의 burles 값은 어떤 경로이든 최소값으로 같다. 100 by 100 grid 의 값을 미리 계산해두고 입력받은 n, m 좌표의 값을 k 와 같은지 비교해주면 된다.
C. Berland Regional (Upsolving)
C++
후기
A, B 번이 너무 쉬워서 C 번을 풀었어야 했는데 TLE 를 받고 마무리 했다...
'Codeforces' 카테고리의 다른 글
Educational Codeforces Round 109 (Rated for Div. 2) A, B (0) | 2021.05.16 |
---|---|
Codeforces Round #719 (Div. 3) A~C (0) | 2021.05.06 |
Codeforces #1514A Perfectly Imperfect Array (0) | 2021.04.29 |
Codeforces Round #718 (Div. 1 + Div. 2) A~C (0) | 2021.04.24 |
Codeforces Round #715 (Div. 2) A, B (0) | 2021.04.17 |
댓글