Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma optimize ("O3");
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <vector>
- #include <set>
- #include <algorithm>
- #include <map>
- #include <string>
- #include <unordered_map>
- #include <cassert>
- #include <bitset>
- #include <unordered_set>
- using namespace std;
- #define int long long
- const int inf = 2e9;
- void go(int a, int t, int& ans_a, int& ans_b) {
- if (a % (int)2 == (int)0) {
- int cnt = t / a;
- int sum_progres = cnt * (cnt + (int)1) / (int)2;
- ans_a += sum_progres * (a / (int)2);
- ans_b += sum_progres * (a / (int)2);
- int last = cnt * a - (int)1;
- int len = t - last;
- ans_a += (cnt + (int)1) * (len - len / 2);
- ans_b += (cnt + (int)1) * (len / 2);
- }
- else {
- int cnt = t / a;
- int cnt1 = cnt / (int)2;
- int cnt2 = cnt - cnt1;
- int sum_progress;
- sum_progress = (cnt2 * (cnt2 + (int)1)) / (int)2;
- ans_a += sum_progress * (a - a / (int)2);
- sum_progress = (cnt1 * (cnt1 + (int)1)) / (int)2;
- ans_a += sum_progress * (a - a / (int)2);
- sum_progress = (cnt2 * (cnt2 - (int)1)) / (int)2;
- ans_a += sum_progress * (a / (int)2);
- sum_progress = (cnt1 * (cnt1 + (int)1)) / (int)2;
- ans_a += sum_progress * (a / (int)2);
- sum_progress = (cnt2 * (cnt2 + (int)1)) / (int)2;
- ans_b += sum_progress * (a / (int)2);
- sum_progress = (cnt1 * (cnt1 + (int)1)) / (int)2;
- ans_b += sum_progress * (a - a / (int)2);
- sum_progress = (cnt1 * (cnt1 + (int)1)) / (int)2;
- ans_b += sum_progress * (a / (int)2);
- sum_progress = (cnt2 * (cnt2 - (int)1)) / (int)2;
- ans_b += sum_progress * (a - a / (int)2);
- int last = cnt * a - (int)1;
- int len = t - last;
- int len2 = max(len - (int)1, (int)0);
- if (cnt1 == cnt2) {
- ans_a += (cnt2 + (int)1) * (len - len / (int)2);
- ans_a += (cnt1) * (len / (int)2);
- ans_b += (cnt2 + (int)1) * (len / (int)2);
- ans_b += (cnt1) * (len - len / (int)2);
- }
- else {
- ans_a += (cnt1 + (int)1) * (len - len / (int)2);
- ans_a += (cnt2) * (len / (int)2);
- ans_b += (cnt2) * (len - len / (int)2);
- ans_b += (cnt1 + (int)1) * (len / (int)2);
- }
- }
- }
- void solve() {
- int a, b, t;
- cin >> a >> b >> t;
- int ans_a = 0, ans_b = 0;
- int c0 = 0, c1 = 0;
- go(a, t, c0, c1);
- ans_a += c0;
- ans_b += c1;
- c0 = 0, c1 = 0;
- go(b, t, c0, c1);
- ans_a += c1;
- ans_b += c0;
- cout << ans_a << " " << ans_b << endl;
- }
- signed main() {
- #ifdef _DEBUG
- freopen("input.txt", "r ", stdin);
- freopen("output.txt", "w", stdout);
- #endif
- ios_base::sync_with_stdio(0);
- cin.tie(NULL);
- cout.tie(NULL);
- int t = 1;
- //cin >> t;
- while (t--) solve();
- }
- //Deisgned by skimono
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement