Notice
Recent Posts
Recent Comments
«   2025/11   »
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
Archives
Today
Total
관리 메뉴

블로그 언저리인 무언가

[백준/BOJ] 32990 시설물 사용 신청 본문

Programming/BOJ

[백준/BOJ] 32990 시설물 사용 신청

he1fire 2025. 8. 13. 11:08
728x90

문제 : 32990번: 시설물 사용 신청

신청을 하는 시간기준으로 나누어 생각하면

시간대의 길이가 x일 때 최대 강의실 x개 안에 나눌 수 있음을 알 수 있다.

이때, x가 N/2보다 크다면 각 시간대 별로 하나의 강의실을 차지하므로

N-x개의 강의실에만 배치해도 된다.

 


Code

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll N, ans;
int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin >> N;
    for (ll i=1;i<N;i++){
        if (N>=i*2)
            ans+=i; // 같은 강의실을 여러번 사용하는 경우
        else
            ans+=N-i; // 한번만 사용하는 경우
    }
    cout << ans << "\n";
    if (ans>1000000)
        return 0;
    for (ll i=1;i<N;i++){
        for (ll j=1;j<=i;j++){
            ll cnt=(N-j)/i;
            if (cnt)
                cout << cnt << " "; // 현재 강의실을 총 몇번 사용하는지 출력
            for (ll k=j;k<=N-i;k+=i)
                cout << k << " " << k+i << " "; // 사용하는 각 시간대 출력
            if (cnt)
                cout << "\n";
        }
    }
    return 0;
}
728x90

'Programming > BOJ' 카테고리의 다른 글

[백준/BOJ] 1081 합  (3) 2025.08.14
[백준/BOJ] 8980 택배  (2) 2025.08.08
[백준/BOJ] 16236 아기 상어  (1) 2022.09.20
[백준/BOJ] 20301 반전 요세푸스  (0) 2022.09.20
[백준/BOJ] 20365 블로그2  (0) 2022.09.20
Comments