Skip to content

Commit 4174431

Browse files
committed
Codemania
1 parent 42bcc80 commit 4174431

File tree

9 files changed

+138
-0
lines changed

9 files changed

+138
-0
lines changed

CP/Codemania/prob2.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
for nitish in range(int(raw_input())):
2+
n=int(raw_input())
3+
if(n==1):
4+
print(1)
5+
continue
6+
mod=10**9+7
7+
8+
# x=((n*(n+1)*(2*n+1))//6)%mod
9+
# y=((n*n+1-2*n)%mod)*(n//2)
10+
# y=y%mod
11+
# xx=n//2-1
12+
# c=(((xx*(xx+1))%mod*(2-2*n))%mod+(xx*(xx+1)*(xx*2+1)*4)//6)%mod
13+
print(((((n*(n+1))//2)%mod)*n)%mod)
14+
15+
16+
# print((x+y+c)%(mod))

CP/Codemania/prob3.py

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import math
2+
t = int(input())
3+
for tc in range(t):
4+
a = input()
5+
b = input()
6+
inta = 0
7+
intb = 0
8+
cnta = 0
9+
cntb = 0
10+
# 1st team
11+
vala = a.find('!')
12+
if vala > 0:
13+
inta = int(a[:vala])
14+
cnta = len(a) - vala
15+
else:
16+
inta = int(a)
17+
valb = b.find('!')
18+
# print(valb)
19+
# 2nd team
20+
if valb > 0:
21+
intb = int(b[:valb])
22+
cntb = len(b) - valb
23+
else:
24+
intb = int(b)
25+
# print("cnta",cnta ,"cntb",cntb)
26+
# fact(13) > 10^9 so calculate upto 12
27+
while cnta > 0 and inta < 13:
28+
# print("aaaaaa")
29+
cnta -= 1
30+
inta = math.factorial(inta)
31+
while cntb > 0 and intb < 13:
32+
# print("bbbbbb")
33+
cntb -= 1
34+
intb = math.factorial(intb)
35+
# print("cnta",cnta ,"cntb",cntb)
36+
if cnta == cntb:
37+
if inta > intb:
38+
print(1)
39+
elif inta < intb:
40+
print(-1)
41+
else:
42+
print(0)
43+
elif cnta < cntb:
44+
print(-1)
45+
elif cnta > cntb:
46+
print(1)

CP/Codemania/prob4.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import math
2+
import sys
3+
n=int(input())
4+
mod = pow(10,9)+7
5+
for i in range(n):
6+
p , m = map(int , raw_input().split())
7+
ans1 = pow(2*(p+1) , m , mod)%mod
8+
ans2 = pow((p+1) , mod-2 , mod)%mod
9+
ans3 = (p+1-m)%mod
10+
ans = (ans1*ans2*ans3)%mod
11+
# print(ans1,ans2,ans3)
12+
print(ans)

CP/Codemania/prob5.cpp

Whitespace-only changes.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
n=input()
2+
s=raw_input()
3+
vowels="aeiouy"
4+
ans=""
5+
i=0
6+
while i<n:
7+
ans+=str(s[i])
8+
if s[i] not in vowels:
9+
i+=1
10+
continue
11+
while i<n and s[i] in vowels:i+=1
12+
print ans
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
n=input()
2+
a=map(int,raw_input().split())
3+
x=1
4+
y=10**6
5+
ans=min(a[n-1]-x,y-a[0])
6+
for i in range(n-1):
7+
ans=min(ans,max(a[i]-x,y-a[i+1]) )
8+
print ans
9+
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
ps = [False]*(10**5)
2+
ps[0] = True
3+
ps[1] = True
4+
for i in range(len(ps)):
5+
if not ps[i]:
6+
for k in range(i*i, i, len(ps)):
7+
ps[k] = True
8+
primes = [i for i, v in enumerate(ps) if not v]
9+
10+
t = int(raw_input())
11+
for _ in range(t):
12+
x = int(raw_input())
13+
divs = set([1])
14+
xol = x
15+
if x == 0:
16+
print("1 1")
17+
continue
18+
for p in primes:
19+
if x <= 1: break
20+
while x%p == 0:
21+
d2 = set()
22+
for d in divs:
23+
d2.add(d*p)
24+
divs |= d2
25+
x //= p
26+
ok = False
27+
for d in divs:
28+
d1, d2 = d, xol//d
29+
if (d1+d2)%2 == 0:
30+
n, nm = (d1+d2)//2, (max(d1,d2) - min(d1, d2))//2
31+
if nm == 0: continue
32+
m1 = n//nm
33+
m2 = n//nm + 1
34+
if m1 > 0 and n//m1 == nm:
35+
print("{} {}".format(n, m1))
36+
ok = True
37+
break
38+
if m2 > 0 and n//m2 == nm:
39+
print("{} {}".format(n, m2))
40+
ok = True
41+
break
42+
if not ok:
43+
print(-1)

CP/Encipher/prob2.py

Whitespace-only changes.

CP/INOI Practice Contest/prob1.py

Whitespace-only changes.

0 commit comments

Comments
 (0)