Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #define _CRT_SECURE_NO_WARNINGS
- #define _USE_MATH_DEFINES
- #include <iostream>
- #include <string>
- #include <map>
- #include <set>
- #include <algorithm>
- #include <vector>
- #include <stdio.h>
- #include <cmath>
- #include <math.h>
- #include <queue>
- #include <stack>
- #include <climits>
- #include <deque>
- #include <ctime>
- #include <iomanip>
- #include <bitset>
- #include <unordered_map>
- #include <unordered_set>
- using namespace std;
- typedef long long ll;
- typedef unsigned long long ull;
- typedef unsigned int ui;
- #define mh() make_heap()
- #define poph() pop_heap()
- #define pushh() push_heap()
- #define sor(n) n.begin(), n.end()
- #define rsor(n) n.rbegin(), n.rend()
- #define mp make_pair
- #define files freopen("input.txt", "rt", stdin); freopen("output.txt", "wt", stdout)
- #define p(T) pair<T,T>
- #define toch(x) cout.precision(x), cout.setf(ios::fixed)
- #define znac(l) abs(l)/l
- #define IOS ios::sync_with_stdio(false)
- #define IOSB cin.tie(0), cout.tie(0);
- const ll ok = ll(1e9 + 7);
- int main()
- {
- IOSB;
- IOS;
- #ifdef TheCompiler
- files;
- #endif
- ll m, k, d;
- cin >> k >> m >> d;
- ll answ = 0;
- ll frs = 0;
- ll pr = 1;
- for (int i = d; i <= 7; i++)
- {
- if (i != 7 && i != 6)
- {
- m += k;
- }
- if (m - pr < 0)
- {
- cout << i - d << endl;
- return 0;
- }
- m -= pr;
- pr++;
- }
- answ = 7 - d + 1;
- if (pr > k + m)
- {
- cout << answ << endl;
- return 0;
- }
- answ+=((k - pr) >= 0 ? (k - pr) : 0 * 6) / 7;
- pr += 7 * (((k - pr) >= 0 ? (k - pr) : 0 * 6) / 7);
- ll ost = ((k - pr)>=0? (k - pr):0 * 6) % 7;
- answ += ost;
- for (int i = ost; i <= 7; i++)
- {
- if (i != 7 && i != 6)
- {
- m += k;
- }
- if (m - pr < 0)
- {
- cout << answ+i-ost<< endl;
- return 0;
- }
- m -= pr;
- pr++;
- }
- answ += 7 - ost + 1;
- if ((2 * pr - 7) + 8 * m * 7 < 0)
- {
- for (int i = ost; i <= 7; i++)
- {
- if (i != 7 && i != 6)
- {
- m += k;
- }
- if (m - pr < 0)
- {
- cout << answ + i - ost << endl;
- return 0;
- }
- m -= pr;
- pr++;
- }
- }
- else
- {
- double dec = sqrt((2 * pr - 7) + 8 * m * 7);
- double x1 = ((-(2 * pr - 7)) + dec) / 14.0;
- double x2 = ((-(2 * pr + 7)) + dec) / 14.0;
- ll n;
- if (x1 < 0 || x2 < 0)
- {
- n = max(x1, x2);
- }
- else
- {
- n = min(x1, x2);
- }
- pr += 7 * (n - 1);
- m -= ((pr * 2 + 7 * (n - 1))*n) / 2;
- answ += n;
- for (int i = ost; i <= 7; i++)
- {
- if (i != 7 && i != 6)
- {
- m += k;
- }
- if (m - pr < 0)
- {
- cout << answ + i - ost << endl;
- return 0;
- }
- m -= pr;
- pr++;
- }
- answ += 7 - ost + 1;
- }
- cout << answ;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement