185342025-10-26 11:42:39ubormaciJárdakövezéscpp17Időlimit túllépés 0/751.1s508 KiB
#include <iostream>
#include <algorithm> // for sort, mainly
#include <vector>
#include <map>
#include <set>
#include <cmath>
#include <array>
#include <string>
#include <cstdio>
#include <iterator>
#include <unordered_set>
#include <cstdint> // for int64_t, int32_t, etc
#include <queue>
#include <stack>
#include <deque>
#include <numeric> // gcd, lcm
#include <fstream>
#include <bitset> // for bitset
#include <iomanip>
#include <cassert> // for set with custom ordering
#include <type_traits> // for set with custom ordering
#include <utility> // for swap, forward, etc
using namespace std;

#pragma GCC optimize("O2")
// #pragma GCC optimize("O1","O2","O3","Ofast","unroll-loops")
// #pragma GCC target("sse","sse2","sse3","sse4.1","sse4.2","avx","avx2","fma")

template<typename A, typename B> ostream& operator<<(ostream &os, const pair<A, B> &p) { return os << '(' << p.first << ", " << p.second << ')'; }
template<typename T_container, typename T = typename enable_if<!is_same<T_container, string>::value, typename T_container::value_type>::type> ostream& operator<<(ostream &os, const T_container &v) { os << '{'; string sep; for (const T &x : v) os << sep << x, sep = ", "; return os << '}'; }
void dbg_out() { cout << endl; }
template<typename Head, typename... Tail> void dbg_out(Head H, Tail... T) { cout << ' ' << H; dbg_out(T...); }
#ifdef LOCAL
#define dbg(...) cout << "(" << #__VA_ARGS__ << "):", dbg_out(__VA_ARGS__)
#else
#define dbg(...)
#endif

/*

notes:

int64_t
stoi(string s) -> string to int
to_string() -> int (or else) to string

vector declaration:
vector<ll> v(n, 0)
vector<vector<ll>> v(n, vector<ll>(n, 0));

{if statement} ? {truth value} : {false value}

#ifdef LOCAL
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
#endif

std::lcm(ll a, ll b), std::gcd(int a, int b)

cout << fixed << setprecision(n);

set with custom ordering
set<ll, decltype(&cmp)> qu(cmp);

*/

typedef int64_t ll;

ll extendedeuclid(ll a, ll b, ll &x, ll &y) {

	if(b == 0) {
		x = 1;
		y = 0;
		return a;
	}

	ll x1, y1;
	ll d = extendedeuclid(b, a % b, x1, y1);
	x = y1;
	y = x1 - y1 * (a / b);
	return d;
}	

void solve() {

	ll h, a, b;
	cin >> h >> a >> b;

	// a * x + b * y = c
	// oldest problem in the book
	// and I'm still shit at it but let's not get so hasty

	// szoval
	// standard extended euclidean algorithm megoldja a * x + b * y = gcd(x, y)
	// es erre ad egy a, b erteket
	// ha c mod gcd = 0, akkor egyszeruen vesszik c / g es beszorozzuk vele az x/y-t

	ll g = gcd(a, b);
	if(h % g != 0) {
		cout << "0 0";
		return;
	}

	ll x0, y0;
	extendedeuclid(a, b, x0, y0);
	x0 *= h / g;
	y0 *= h / g;

	ll k = 0;
	while(1) {

		ll x = x0 + k * (b/g);
		ll y = y0 - k * (a/g);

		if(x >= 0 && y >= 0) {
			cout << x << " " << y;
			return;
		}
		k++;
	}
}

int main()
{
	std::ios_base::sync_with_stdio(false);
	//cin.tie(nullptr);
	//cout.tie(nullptr);

	solve();

	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
subtask20/12
2Időlimit túllépés1.09s316 KiB
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva1ms508 KiB
6Elfogadva1ms316 KiB
7Elfogadva1ms508 KiB
8Elfogadva1ms320 KiB
9Elfogadva1ms316 KiB
10Időlimit túllépés1.1s316 KiB
11Elfogadva1ms316 KiB
12Időlimit túllépés1.1s316 KiB
13Időlimit túllépés1.1s316 KiB
subtask30/12
14Időlimit túllépés1.082s500 KiB
15Elfogadva4ms508 KiB
16Időlimit túllépés1.082s316 KiB
17Elfogadva1ms496 KiB
18Elfogadva1ms500 KiB
19Időlimit túllépés1.098s316 KiB
20Elfogadva1ms424 KiB
21Időlimit túllépés1.1s316 KiB
22Elfogadva1ms316 KiB
23Elfogadva1ms316 KiB
24Időlimit túllépés1.098s316 KiB
25Elfogadva1ms316 KiB
subtask40/24
26Időlimit túllépés1.082s500 KiB
27Elfogadva1ms316 KiB
28Elfogadva1ms316 KiB
29Időlimit túllépés1.082s316 KiB
30Elfogadva1ms316 KiB
31Elfogadva1ms316 KiB
32Időlimit túllépés1.1s316 KiB
33Időlimit túllépés1.1s316 KiB
34Időlimit túllépés1.08s316 KiB
35Időlimit túllépés1.082s316 KiB
36Elfogadva1ms316 KiB
37Időlimit túllépés1.09s508 KiB
38Időlimit túllépés1.098s316 KiB
39Időlimit túllépés1.088s500 KiB
40Időlimit túllépés1.088s316 KiB
41Időlimit túllépés1.1s316 KiB
42Időlimit túllépés1.082s316 KiB
43Elfogadva1ms316 KiB
44Elfogadva1ms508 KiB
45Elfogadva1ms316 KiB
46Időlimit túllépés1.1s316 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms316 KiB
49Elfogadva1ms316 KiB
subtask50/27
50Időlimit túllépés1.075s316 KiB
51Elfogadva1ms508 KiB
52Elfogadva1ms316 KiB
53Elfogadva2ms316 KiB
54Időlimit túllépés1.1s316 KiB
55Elfogadva2ms316 KiB
56Elfogadva3ms316 KiB
57Időlimit túllépés1.1s316 KiB
58Időlimit túllépés1.1s316 KiB
59Elfogadva2ms316 KiB
60Elfogadva1ms316 KiB
61Elfogadva2ms316 KiB
62Elfogadva2ms316 KiB
63Elfogadva2ms416 KiB
64Elfogadva1ms508 KiB
65Elfogadva3ms316 KiB
66Időlimit túllépés1.1s316 KiB
67Időlimit túllépés1.1s316 KiB
68Időlimit túllépés1.1s316 KiB
69Időlimit túllépés1.1s316 KiB
70Időlimit túllépés1.07s316 KiB
71Időlimit túllépés1.1s508 KiB
72Elfogadva1ms316 KiB
73Elfogadva4ms316 KiB
74Elfogadva1ms316 KiB
75Elfogadva1ms316 KiB
76Elfogadva1ms316 KiB