Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 12. Equation (Version 1)
- // An + B Log(n) + C n^3 = X
- // 0 <= A,B, C <= 200, 0 <= X <= 10^15
- #include <stdio.h>
- int A, B, C, T;
- long long X, N;
- long long Ans;
- void input()
- {
- scanf("%d%d%d%lld", &A, &B, &C, &X);
- return;
- }
- int log(long long n)
- {
- double d = (double) n;
- int value = 0;
- while (d >= 2.71828)
- {
- d /= 2.71828;
- value++;
- }
- return value;
- }
- void output(int t)
- {
- printf("#%d %lld\n", t, Ans);
- }
- long long fun(long long n)
- {
- // if ((A * n) + (B * log(n)) + (C * n * n * n) == X)
- // return 1;
- long long value = (A * n) + (B * log(n)) + (C * n * n * n);
- // printf("VAlue = %d\n", value);
- return value;
- }
- long long binarySearch()
- {
- long long up, low, mid;
- low = 0;
- up = X;
- if (0 == C)
- up = X / A;
- else
- up = 100000;
- mid = (low + up) / 2;
- while (up > low)
- {
- //printf("Up = %d \t Low = %d\t MID = %d\n", up, low, mid);
- if (fun(mid) > X)
- {
- up = mid - 1;
- }
- else if (fun(mid) < X)
- low = mid + 1;
- else
- break;
- mid = (up + low) / 2;
- }
- return mid;
- }
- int main()
- {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- int i, j, t;
- scanf("%d", &T);
- printf("%d\n", T);
- for (t = 1; t <= T; t++)
- {
- input();
- Ans = binarySearch();
- output(t);
- }
- }
- /*
- Input
- ========
- 50
- 54 65 0 1065249
- 15 80 0 825140
- 78 45 56 43920106826409
- 88 33 61 10862481212288
- 51 16 76 75340716135101
- 61 80 68 15298476040666
- 37 96 78 44938769001299
- 77 8 44 3924571158308
- 56 8 43 17011168182463
- 100 71 44 17570901096904
- 11 66 68 28117566582478
- 96 38 5 1094101506680
- 14 47 0 1388015
- 15 39 0 1224144
- 68 74 55 451315777889
- 21 5 91 67383748150925
- 35 28 75 2035141989774
- 6 78 21 2631305071992
- 76 13 85 78855792807390
- 6 49 26 11039099911984
- 61 62 0 5278951
- 4 10 15 109605462904585
- 91 83 57 3837229109476
- 92 96 48 38983980235224
- 85 45 37 23256049751867
- 97 79 96 11964036473147
- 53 91 55 16638441356852
- 98 75 54 12851039806048
- 81 88 33 23579061196932
- 70 22 11 3691132858445
- 59 77 42 15972190135321
- 95 21 0 6075956
- 47 20 22 19806806647164
- 63 19 78 833719207132210
- 21 10 13 2739764429614
- 92 88 76 57214773468864
- 4 4 56 28844376325472
- 88 5 33 1736061482635
- 40 16 0 518584
- 84 49 5 2483025328383
- 36 11 23 283065394233134
- 85 42 41 57756572580
- 85 75 51 23039114493872
- 53 68 88 533843927607162
- 86 83 22 15724649965335
- 77 72 0 186536
- 97 70 92 56061933307380
- 91 76 15 3475527788850
- 68 64 36 12416924320488
- 31 49 37 6708895527852
- */
- /*
- Output
- =======
- 50
- #1 19716
- #2 54956
- #3 9222
- #4 5626
- #5 9971
- #6 6082
- #7 8321
- #8 4468
- #9 7341
- #10 7364
- #11 7450
- #12 6026
- #13 99107
- #14 81581
- #15 2017
- #16 9047
- #17 3005
- #18 5004
- #19 9753
- #20 7516
- #21 86529
- #22 19405
- #23 4068
- #24 9330
- #25 8566
- #26 4995
- #27 6713
- #28 6197
- #29 8940
- #30 6949
- #31 7245
- #32 63955
- #33 9656
- #34 22028
- #35 5951
- #36 9097
- #37 8016
- #38 3747
- #39 12961
- #40 7919
- #41 23088
- #42 1121
- #43 7673
- #44 18238
- #45 8941
- #46 2416
- #47 8478
- #48 6142
- #49 7013
- #50 5660
- */
Add Comment
Please, Sign In to add comment