QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#708851 | #2933. Sequinary Numerals | sefnuray# | AC ✓ | 0ms | 3828kb | C++14 | 2.1kb | 2024-11-04 08:36:32 | 2024-11-04 08:36:32 |
Judging History
answer
#include <iostream>
#include <algorithm>
#include <bitset>
#include <vector>
#include <cmath>
#include <string>
#include <set>
#include <map>
#include <unordered_map>
#include <sstream>
#include <iomanip>
#include <stdexcept>
#include <utility>
#include <deque>
using namespace std;
typedef long long ll;
typedef long double ld;
#define MOD 1000007
ll gcd (int a, int b) {
return b ? gcd (b, a % b) : a;
}
void FastDoubling (ll n, ll res[]) {
ll a, b, c, d;
// Base Condition
if (n == 0) {
res[0] = 0;
res[1] = 1;
return;
}
FastDoubling((n / 2), res);
// Here a = F(n)
a = res[0];
// Here b = F(n+1)
b = res[1];
c = 2 * b - a;
if (c < 0)
c += MOD;
// As F(2n) = F(n)[2F(n+1) – F(n)]
// Here c = F(2n)
c = (a * c) % MOD;
// As F(2n + 1) = F(n)^2 + F(n+1)^2
// Here d = F(2n + 1)
d = (a * a + b * b) % MOD;
// Check if N is odd
// or even
if (n % 2 == 0) {
res[0] = c;
res[1] = d;
}
else {
res[0] = d;
res[1] = c + d;
}
}
int main()
{
// these first two lines speed up input / output significantly
ios_base::sync_with_stdio(0);
cin.tie(0);
string seq;
cin >> seq;
if (seq.size() != 0)
{
int denPow = seq.size() - 1;
ll num = 0;
// ll den = pow(2, denPow);
ll den = 1 << denPow;
ll pow3 = 1;
ll pow2 = den;
for (int i = 0; i < seq.size(); i++)
{
int d = (seq[denPow - i] - '0');
// num += d * (pow(3, i)) * (pow(2, denPow - i));
num += d * pow3 * pow2;
pow3 *= 3;
pow2 /= 2;
}
ll whole = num / den;
num = num % den;
if (num != 0)
{
ll divis = gcd(num, den);
num /= divis;
den /= divis;
cout << whole << " " << num << "/" << den;
}
else
{
cout << whole;
}
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3540kb
input:
2101
output:
10
result:
ok single line: '10'
Test #2:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
201
output:
5 1/2
result:
ok single line: '5 1/2'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3828kb
input:
2010211122112221202012
output:
16541 873801/1048576
result:
ok single line: '16541 873801/1048576'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3612kb
input:
22222222222222222222222222222222
output:
1725755 572407425/1073741824
result:
ok single line: '1725755 572407425/1073741824'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3480kb
input:
11111111111111111111111111111111
output:
862877 1646149249/2147483648
result:
ok single line: '862877 1646149249/2147483648'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3828kb
input:
10000000000000000000000000000000
output:
287626 1264544299/2147483648
result:
ok single line: '287626 1264544299/2147483648'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
1
output:
1
result:
ok single line: '1'
Test #8:
score: 0
Accepted
time: 0ms
memory: 3776kb
input:
2
output:
2
result:
ok single line: '2'
Test #9:
score: 0
Accepted
time: 0ms
memory: 3476kb
input:
10
output:
1 1/2
result:
ok single line: '1 1/2'
Test #10:
score: 0
Accepted
time: 0ms
memory: 3824kb
input:
11
output:
2 1/2
result:
ok single line: '2 1/2'
Test #11:
score: 0
Accepted
time: 0ms
memory: 3540kb
input:
12
output:
3 1/2
result:
ok single line: '3 1/2'
Test #12:
score: 0
Accepted
time: 0ms
memory: 3604kb
input:
20
output:
3
result:
ok single line: '3'
Test #13:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
21
output:
4
result:
ok single line: '4'
Test #14:
score: 0
Accepted
time: 0ms
memory: 3480kb
input:
22
output:
5
result:
ok single line: '5'
Test #15:
score: 0
Accepted
time: 0ms
memory: 3828kb
input:
201000101020120002210001022
output:
99539 7418955/33554432
result:
ok single line: '99539 7418955/33554432'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
21012020111221210112111012122211
output:
1056241 54451731/134217728
result:
ok single line: '1056241 54451731/134217728'
Test #17:
score: 0
Accepted
time: 0ms
memory: 3808kb
input:
121200
output:
25 19/32
result:
ok single line: '25 19/32'
Test #18:
score: 0
Accepted
time: 0ms
memory: 3812kb
input:
22010
output:
18 3/8
result:
ok single line: '18 3/8'
Test #19:
score: 0
Accepted
time: 0ms
memory: 3812kb
input:
1102121021020020112221202220100
output:
565301 930420511/1073741824
result:
ok single line: '565301 930420511/1073741824'
Test #20:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
1022020000221011110121211
output:
47476 16343961/16777216
result:
ok single line: '47476 16343961/16777216'
Test #21:
score: 0
Accepted
time: 0ms
memory: 3812kb
input:
21100210121101
output:
698 349/2048
result:
ok single line: '698 349/2048'
Test #22:
score: 0
Accepted
time: 0ms
memory: 3524kb
input:
122110002
output:
97 61/256
result:
ok single line: '97 61/256'
Test #23:
score: 0
Accepted
time: 0ms
memory: 3528kb
input:
200200011120110
output:
806 6545/8192
result:
ok single line: '806 6545/8192'
Test #24:
score: 0
Accepted
time: 0ms
memory: 3584kb
input:
212020012222220200010110012112
output:
540506 7899177/8388608
result:
ok single line: '540506 7899177/8388608'
Test #25:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
21201001011
output:
222 19/64
result:
ok single line: '222 19/64'