Skip to content

Commit 3b90ba5

Browse files
committed
Codemania
1 parent 4174431 commit 3b90ba5

File tree

4 files changed

+122
-3
lines changed

4 files changed

+122
-3
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
n = int(input())
2+
arr = map(int,raw_input().split())
3+
a=[]
4+
f=0
5+
j=0
6+
for i in range(0,n):
7+
vec = arr[i]
8+
while j<n and vec!=n:
9+
if(arr[i] in a):
10+
# print(a)
11+
f=1
12+
break
13+
if(vec!=arr[vec-1]):
14+
vec=arr[vec-1]
15+
a.append(vec)
16+
j+=1
17+
print(a)
18+
if(f and len(a)==3): break
19+
del a[:]
20+
21+
# del lst[:]
22+
23+
# print(a)
24+
if(f and len(a)==3):
25+
print("YES")
26+
else:
27+
print("NO")
28+
29+
30+
'''
31+
5
32+
2 4 5 1 3
33+
34+
5
35+
4 2 1 3 5
36+
37+
5
38+
4 1 2 3 5
39+
40+
41+
5
42+
5 5 5 5 1
43+
44+
45+
'''

CP/Codemania/prob5.cpp

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
#include "bits/stdc++.h"
2+
using namespace std;
3+
typedef long long ll;
4+
const ll siz = 5e5 + 4;
5+
const ll inf = 1e18;
6+
ll arr[siz], tree[4 * siz]; //Size of Segment tree is never going to be more than 4 * siz.
7+
8+
void build(ll node, ll start, ll end) {
9+
if(start == end)
10+
tree[node] = arr[start]; // Leaf node will have a single element.
11+
else {
12+
ll mid = (start + end) / 2;
13+
build(2 * node, start, mid); // Recurse on the left child.
14+
build(2 * node + 1, mid + 1, end); // Recurse on the right child.
15+
// Internal node will have the sum of both of its children.
16+
tree[node] = max(tree[2 * node], tree[2 * node + 1]);
17+
}
18+
}
19+
20+
ll query(ll node, ll start, ll end, ll l, ll r) {
21+
if(r < start || end < l)
22+
return -inf; // range represented by a node is completely outside the given range.
23+
if(l <= start && end <= r)
24+
return tree[node]; // range represented by a node is completely inside the given range.
25+
// range represented by a node is partially inside and partially outside the given range.
26+
ll mid = (start + end) / 2;
27+
ll s1 = query(2 * node, start, mid, l, r);
28+
ll s2 = query(2 * node + 1, mid + 1, end, l, r);
29+
return max(s1 ,s2);
30+
}
31+
32+
int main(){
33+
ll n, q;
34+
scanf("%lld %lld", &n, &q);
35+
vector<pair<ll, ll> > v;
36+
map<ll, ll> mp;
37+
for(ll i = 0; i < n; ++i){
38+
ll l, r, s;
39+
scanf("%lld %lld %lld", &l, &r, &s);
40+
mp[l] += s;
41+
mp[r + 1] = mp[r + 1] - s;
42+
}
43+
vector<ll> v1;
44+
for(auto it = mp.begin(); it != mp.end(); ++it){
45+
v.push_back({it->first, it->second});
46+
v1.push_back(it->first);
47+
}
48+
sort(v.begin(), v.end());
49+
sort(v1.begin(), v1.end());
50+
arr[0] = v[0].second;
51+
for(ll i = 1; i < v1.size(); ++i){
52+
arr[i] = arr[i - 1] + v[i].second;
53+
}
54+
/*for(int i = 0; i < v1.size(); ++i){
55+
cout<<v[i].first<<" "<<arr[i]<<"\n";
56+
}*/
57+
build(1, 0, v1.size() - 1);
58+
while(q--){
59+
ll l, r;
60+
scanf("%lld %lld", &l, &r);
61+
ll left = lower_bound(v1.begin(), v1.end(), l) - v1.begin();
62+
if(v1[left] > l && left > 0)
63+
left--;
64+
ll right = upper_bound(v1.begin(), v1.end(), r) - v1.begin();
65+
right--;
66+
if(right < 0 || v1[v1.size() - 1] < l){
67+
//cout<<"OK\n";
68+
printf("0\n");
69+
}
70+
else{
71+
printf("%lld\n", query(1, 0, v1.size() - 1, left, right));
72+
}
73+
}
74+
}

CP/Educational Codeforces Round 38 (Rated for Div. 2)/prob2.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@
55
ans=min(a[n-1]-x,y-a[0])
66
for i in range(n-1):
77
ans=min(ans,max(a[i]-x,y-a[i+1]) )
8-
print ans
9-
8+
print ans

CP/Educational Codeforces Round 38 (Rated for Div. 2)/prob3.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
ps[1] = True
44
for i in range(len(ps)):
55
if not ps[i]:
6-
for k in range(i*i, i, len(ps)):
6+
for k in range( i*i, i, len(ps)):
77
ps[k] = True
8+
print(ps)
89
primes = [i for i, v in enumerate(ps) if not v]
910

1011
t = int(raw_input())

0 commit comments

Comments
 (0)