183672025-10-21 14:04:55ubormaciKépkeretekcpp17Accepted 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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask220/20
2Accepted2ms316 KiB
3Accepted2ms316 KiB
4Accepted1ms316 KiB
5Accepted2ms316 KiB
subtask360/60
6Accepted1ms316 KiB
7Accepted1ms332 KiB
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms508 KiB
11Accepted1ms500 KiB
12Accepted1ms316 KiB
13Accepted1ms508 KiB
14Accepted1ms316 KiB
subtask420/20
15Accepted1ms316 KiB
16Accepted2ms316 KiB
17Accepted2ms316 KiB
18Accepted1ms316 KiB
19Accepted2ms316 KiB
20Accepted1ms316 KiB
21Accepted1ms332 KiB
22Accepted1ms316 KiB
23Accepted1ms316 KiB
24Accepted1ms508 KiB
25Accepted1ms500 KiB
26Accepted1ms316 KiB
27Accepted1ms508 KiB
28Accepted1ms316 KiB
29Accepted12ms416 KiB
30Accepted14ms412 KiB
31Accepted14ms416 KiB
32Accepted14ms316 KiB
33Accepted14ms316 KiB
34Accepted14ms340 KiB
35Accepted14ms316 KiB
36Accepted14ms420 KiB
37Accepted8ms316 KiB
38Accepted6ms316 KiB
39Accepted1ms316 KiB