백준 / 32758 / N+1 행사 / C++

비니01·2025년 1월 5일

백준

목록 보기
41/49

문제 링크 : https://www.acmicpc.net/problem/32758

#include <bits/stdc++.h>

using namespace std;

vector<int> val;
vector<int> cnt;

void func(int idx)
{
    if(cnt[idx] < val[idx])
    {
        cout << cnt[idx] << " ";
        return;
    }
    else if(cnt[idx] % val[idx] == 0)
    {
        cout << cnt[idx] - (cnt[idx] / val[idx] - 1) << " ";
        return;
    }
    else
    {
        cout << cnt[idx] - (cnt[idx] / val[idx]) << " ";
        return;
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(0);
    //freopen("test.txt", "rt", stdin);
    int n;
    cin >> n;
    val.resize(n);
    cnt.resize(n);
    for(int i = 0; i < n; i++)
    {
        cin >> val[i];
    }
    for(int i = 0; i < n; i++)
    {
        cin >> cnt[i];
    }
    for(int i = 0; i < n; i++)
    {
        func(i);
    }
    return 0;
}

문제만 봐서는 규칙성이 안 보여서 직접 적어가면서 규칙성을 찾아보았다.

그랬더니 나름대로 규칙성이 보였고, 점화식을 정리했다.

구현 자체는 어렵지 않아 보였고, 그대로 간단하게 구현한 후 실행했더니 성공!

골드 4급의 문제는 아닌 것 같았다... 규칙만 찾으면 실버 1급도 될 것 같은 느낌

profile
이것저것

0개의 댓글