알고리즘
백준 23351번 물 주기 C++
영춘권의달인
2022. 11. 4. 11:25
https://www.acmicpc.net/problem/23351
23351번: 물 주기
첫째 줄에 자연수 $N$, $K$, $A$, $B$가 공백을 사이에 두고 주어진다. ($2 \le N \le 100$, $1 \le K \le 100$, $1 \le A \times B < N$, $A$는 $N$의 약수)
www.acmicpc.net
시뮬레이션
#include <iostream>
#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <utility>
#include <stack>
#include <queue>
#include <math.h>
#include <set>
#include <map>
#include <list>
#include <unordered_map>
#include <unordered_set>
#include <iomanip>
#include <limits.h>
using namespace std;
using int64 = long long;
int n, k, a, b;
vector<int> v;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n >> k >> a >> b;
v = vector<int>(n, k);
int day = 0;
int idx = 0;
while (true) {
day++;
for (int i = 0; i < a; i++) {
v[idx] += b;
idx = (idx + 1) % n;
}
bool end = false;
for (int i = 0; i < n; i++) {
v[i]--;
if (v[i] <= 0) {
end = true;
break;
}
}
if (end) break;
}
cout << day;
}