Submission details
Task:Exponentiation II
Sender:team_a
Submission time:2020-10-10 16:53:15 +0300
Language:C++ (C++11)
Status:READY
Result:
Test results
testverdicttime
#10.01 sdetails
#20.01 sdetails
#30.01 sdetails
#40.01 sdetails
#50.01 sdetails
#60.32 sdetails
#70.32 sdetails
#80.32 sdetails
#90.32 sdetails
#100.32 sdetails
#110.30 sdetails
#120.01 sdetails
#13UNKNOWN--details

Compiler report

input/code.cpp: In function 'long double modular(long long int, long long int)':
input/code.cpp:11:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (i = 0; i < sizeof(int) * 8; i++) {
              ~~^~~~~~~~~~~~~~~~~

Code

#include<iostream>
#include<cmath>

using namespace std;

long double modular(long long base, long long exp)
{
	long long x = 1;
	long long i;

	for (i = 0; i < sizeof(int) * 8; i++) {
		long long least_sig_bit = 0x00000001 & ( (exp) >> i);
		if (least_sig_bit)
			x = (x * base);
		base = (base * base);
	}

	return (x);
}
int main()
{
	long long n, a, b, c;

	cin >> n;

	for (long long i = 0; i < n; i++)
	{
		cin >> a >> b >> c;
		cout << fmod(modular(a, (modular(b, c))) , (pow(10, 9) + 7)) << endl;
		//cout << modular(a, (modular(b, c))) << endl;
	}
	
	
}

Test details

Test 1

Verdict:

input
100
0 0 4
6 10 0
10 2 10
1 0 8
...

correct output
1
6
148946603
1
3
...

user output
1
6
0
1
3
...
Truncated

Test 2

Verdict:

input
100
9 4 5
8 4 0
4 8 2
3 5 5
...

correct output
214554799
8
279632277
611730172
715652984
...

user output
2.7663e+08
8
0
2.58915e+08
7.0646e+08
...
Truncated

Test 3

Verdict:

input
100
7 8 8
10 10 7
2 9 2
8 10 0
...

correct output
730885442
20339523
993282280
8
625
...

user output
3.73071e+06
0
0
8
625
...
Truncated

Test 4

Verdict:

input
100
5 8 8
2 0 3
9 4 3
4 6 3
...

correct output
282452398
1
989568599
693723814
0
...

user output
-5.5904e+08
1
-3.51062e+08
0
0
...
Truncated

Test 5

Verdict:

input
100
1 5 9
0 9 10
6 4 0
3 0 2
...

correct output
1
0
6
1
1
...

user output
1
0
6
1
1
...
Truncated

Test 6

Verdict:

input
100000
427077162 725488735 969284582
690776228 346821890 923815306
120792413 830417705 620512131
124338009 281003983 942892968
...

correct output
464425025
534369328
130727849
700118497
107743432
...

user output
0
1
-9.01743e+08
-3.31554e+07
5.03392e+08
...
Truncated

Test 7

Verdict:

input
100000
549912649 89327521 871975745
535279536 932155670 905816213
823612334 695788501 444512992
759615176 787119545 554458804
...

correct output
881129043
382882527
629531040
187731964
645183800
...

user output
6.49026e+08
1
0
0
0
...
Truncated

Test 8

Verdict:

input
100000
936404322 396567517 790669439
481270350 76922724 629921729
671743438 191526060 967294836
924162618 12077521 309065226
...

correct output
97939641
444610902
764760944
908139640
141442423
...

user output
0
1
1
0
0
...
Truncated

Test 9

Verdict:

input
100000
351202328 968630319 166200341
255212213 264616175 551048264
424158298 619081986 947433051
684487950 75127045 253732667
...

correct output
366599160
848441769
956822386
613949824
120366590
...

user output
0
-9.74832e+08
1
0
9.31934e+08
...
Truncated

Test 10

Verdict:

input
100000
209975923 983464825 764619594
941857563 817930575 870450878
369061594 330537317 297179961
654309611 829387219 969440105
...

correct output
374576231
275090960
409421171
987526468
359724919
...

user output
7.66019e+08
4.10526e+07
0
-1.63546e+08
0
...
Truncated

Test 11

Verdict:

input
100000
1000000000 1000000000 10000000...

correct output
497489713
497489713
497489713
497489713
497489713
...

user output
1
1
1
1
1
...
Truncated

Test 12

Verdict:

input
1
140306 140306 140306

correct output
191305161

user output
1

Test 13

Verdict: UNKNOWN

input
1
0 0 0

correct output
0

user output
(not available)