알고리즘/구현 및 시뮬레이션
[B12000] - Circular Barn(Bronze)
tongnamuu
2018. 9. 26. 21:41
https://www.acmicpc.net/problem/12000
원형으로 돌기 때문에 index의 처리만 주의해주면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <iostream> #include <vector> using namespace std; int main() { int n; cin >> n; vector<int>r(n); vector<int>check(n); for (int re = 0; re < n; re++) { check[re] = 0; } for (int i = 0; i < n; i++) cin >> r[i]; int ans = 2147483647; int sum; for (int i = 0; i < n; i++) { for (int re = 0; re < n; re++) { check[re] = 0; } sum = 0; check[i] = 1; for (int k = 1; k < n; k++) { int index1 = i + k; while (index1 >= n) index1 -= n; if (check[index1]==0) { sum += k * r[index1]; check[index1] = 1; } } if (sum < ans) ans = sum; } cout << ans << '\n'; } | cs |