183672025-10-21 14:04:55ubormaciKépkeretekcpp17Elfogadva 100/10014ms508 KiB
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <cmath>
#include <array>
#include <string>
#include <cstdio>
#include <iterator>
#include <unordered_set>
#include <cstdint>
#include <queue>
#include <stack>
#include <deque>
#include <numeric>
#include <fstream>
#include <bitset>
#include <iomanip>
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")

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}

set lower bound/upper bound:
 	// . . . m1 . . . d . . . . m2
    auto m1_it = b.lower_bound(d);
    advance(m1_it, -1);
    m1 = *m1_it;
	m2 = *b.upper_bound(d);

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

constexpr auto lcm(auto x, auto... xs)
{
	return ((x = std::lcm(x, xs)), ...);
}

std::gcd(int a, int b)

cout << setprecision(n);

*/

typedef int64_t ll;

int checkfit(ll h, ll w, ll n, ll m) {
	if(n <= h && m <= w) {
		return 1;
	}
	return 0;
}

void solve() {
	ll n, m, a;
	cin >> n >> m;
	cin >> a;

	ll sum = 0;

	// Height, Width
	for(ll i = 1; i * i <= a; i++) {
		if(a % i == 0) {
			
			//cerr << "\ni=" << i;
			sum += checkfit(i, a/i, n, m);
			if(i != a/i) {
				sum += checkfit(a/i, i, n, m);
			}
			//cerr << "\nsum=" << sum;

		}
	}
	cout << sum;

	// leszogezunk egy H-t (height)
	// binarisan megkeressuk a legkisebb W-et amire mind a ketto nagyobb vagy egyenlo
	// mint N, M

}

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
subtask220/20
2Elfogadva2ms316 KiB
3Elfogadva2ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva2ms316 KiB
subtask360/60
6Elfogadva1ms316 KiB
7Elfogadva1ms332 KiB
8Elfogadva1ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms508 KiB
11Elfogadva1ms500 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms508 KiB
14Elfogadva1ms316 KiB
subtask420/20
15Elfogadva1ms316 KiB
16Elfogadva2ms316 KiB
17Elfogadva2ms316 KiB
18Elfogadva1ms316 KiB
19Elfogadva2ms316 KiB
20Elfogadva1ms316 KiB
21Elfogadva1ms332 KiB
22Elfogadva1ms316 KiB
23Elfogadva1ms316 KiB
24Elfogadva1ms508 KiB
25Elfogadva1ms500 KiB
26Elfogadva1ms316 KiB
27Elfogadva1ms508 KiB
28Elfogadva1ms316 KiB
29Elfogadva12ms416 KiB
30Elfogadva14ms412 KiB
31Elfogadva14ms416 KiB
32Elfogadva14ms316 KiB
33Elfogadva14ms316 KiB
34Elfogadva14ms340 KiB
35Elfogadva14ms316 KiB
36Elfogadva14ms420 KiB
37Elfogadva8ms316 KiB
38Elfogadva6ms316 KiB
39Elfogadva1ms316 KiB