Ранковий голос#12264

Ранковий голос (Розбір)

Автор проблеми:

De3b0o

Підготовлено:

De3b0o

Редаговано:

Hasan Saleh (MathModel)

Рішення

Проблема зводиться до:

Знайти мінімальне в рівнянні a \cdot x + b \cdot y = z, де - невід'ємні цілі числа.

Оскільки x,y,z - додатні цілі числа, а - невід'ємні цілі числа, не може бути більшим за , тому ми можемо перебрати всі можливі значення і знайти мінімальне таке, що значення \frac{z - b \cdot y}{x} є невід'ємним цілим числом.

Складність \mathcal{O}(t \cdot z).


#include<bits/stdc++.h>
#define ll long long
#define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
 
using namespace std;

int main()
{
    d3
    ll T;
    cin >> T;
    while(T--)
    {
        ll x , y , z;
        cin >> x >> y >> z;
        ll ans = -1;
        for(ll i = 0 ; z>=i ; i++)
        {
            if(i*y>z)
                continue;
            ll e = z - i*y;
            if(e%x==0)
            {
                ans=i;
                break;
            }
        }
        cout << ans << "\n";
    }
}