https://www.acmicpc.net/problem/31577
1부터 20까지의 수가 15개의 컴퓨터 중에서 최소 6개의 컴퓨터에 들어가 있는 경우를 찾아내야 하는 문제다.
당연히 5개의 컴퓨터까지 랜섬웨어에 걸릴 수 있으므로 최소 6개가 들어가야 한다.
또한 한 컴퓨터에는 최대 8개의 파일만 들어갈 수 있다.
의도된 문제겠지만
15 × 8 = 20 × 6 으로 개수도 딱 맞아 떨어진다.
120까지 돌면서 i%20+1을 배열에 저장해두고 8개씩 끊으면 끝이다.
코드는 다음과 같다.
#include <iostream>
#include <algorithm>
#include <vector>
#define endl "\n"
using namespace std;
int main() {
vector<int> bit;
int arr[8];
for(int i = 0; i < 120; i++){
arr[i%8] = i%20+1;
if((i+1)%8 == 0){
sort(arr,arr+8);
for(int j = 0; j < 8; j++){
cout << arr[j] << " ";
}
cout << endl;
}
}
}
ps 워렌버핏은 코인 회의론자이다.
'📚알고리즘 > 백준' 카테고리의 다른 글
[백준 30297번] Irreducible Permutation (1) | 2024.11.20 |
---|---|
[백준 13955번] Key Knocking (1) | 2024.11.18 |
[백준 7453번] 합이 0인 네 정수 (C++) (0) | 2024.07.21 |
[백준 2655번] 가장높은탑쌓기 (C++) (0) | 2024.07.18 |
[백준 31443번] 준영이 (C++) (0) | 2024.07.17 |