Skip to content

Commit bdc5cd8

Browse files
committed
created project euler
1 parent b98a913 commit bdc5cd8

10 files changed

+408
-0
lines changed
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
#include <bits/stdc++.h>
2+
#define lli int
3+
#define endl "\n"
4+
#define MAX 1000005
5+
using namespace std;
6+
7+
vector <lli> visited(MAX, -1);
8+
int counter;
9+
10+
void DFS(lli i, vector < vector<lli> > v1)
11+
{
12+
visited[i] = counter;
13+
for(int j = 0; j<v1[i].size(); j++)
14+
if(visited[v1[i][j]] == -1)
15+
DFS(v1[i][j], v1);
16+
}
17+
18+
int main()
19+
{
20+
lli t;
21+
cin>>t;
22+
ios_base::sync_with_stdio(false);
23+
cin.tie(NULL);
24+
while(t--)
25+
{
26+
lli n, k, num1, num2;
27+
cin>>n>>k;
28+
vector < vector<lli> > v1(n+1);
29+
vector <pair <lli, lli> > notequal;
30+
string s;
31+
for(lli i = 0; i<k; i++)
32+
{
33+
cin>>num1>>s>>num2;
34+
if(s[0] == '=')
35+
{
36+
v1[num1].push_back(num2);
37+
v1[num2].push_back(num1);
38+
}
39+
else {
40+
notequal.push_back({num1, num2});
41+
}
42+
}
43+
44+
for(lli i =0 ;i <=n; i++)
45+
visited[i] = -1;
46+
counter = 0;
47+
for(lli i =1; i<=n; i++)
48+
{
49+
if(v1[i].size() > 0)
50+
{
51+
if(visited[i] == -1)
52+
{
53+
counter++;
54+
DFS(i, v1);
55+
}
56+
}
57+
}
58+
bool ans = true;
59+
for(auto c: notequal)
60+
if((visited[c.first] == visited[c.second]) && (visited[c.first] != -1))
61+
{
62+
ans = false;
63+
break;
64+
}
65+
if(ans)
66+
cout<<"YES"<<endl;
67+
else
68+
cout<<"NO"<<endl;
69+
}
70+
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
#define endl "\n"
4+
#define MAX 100005
5+
using namespace std;
6+
7+
vector <bool> visited(MAX, false);
8+
vector <lli> dist(MAX, -1);
9+
vector < vector <lli> > v1(MAX);
10+
vector <lli> primes;
11+
12+
bool isprime(lli n)
13+
{
14+
for(lli i =2; i*i <=n; i++)
15+
if(n%i == 0)
16+
return false;
17+
return true;
18+
}
19+
20+
bool valid(lli a, lli b)
21+
{
22+
lli dif = 0;
23+
string s1 = to_string(a);
24+
string s2 = to_string(b);
25+
if(s1.length() != s2.length())
26+
return false;
27+
for(lli i =0; i<4; i++)
28+
if(s1[i] != s2[i])
29+
dif++;
30+
31+
if(dif == 1)
32+
return true;
33+
return false;
34+
}
35+
36+
void buildprimes()
37+
{
38+
for(lli i = 1000; i<10000; i++)
39+
if(isprime(i))
40+
primes.push_back(i);
41+
}
42+
43+
void buildgraph()
44+
{
45+
for(lli i = 0; i<primes.size()-1; i++)
46+
for(lli j = i+1; j<primes.size(); j++)
47+
{
48+
if(valid(primes[i], primes[j])){
49+
v1[primes[j]].push_back(primes[i]);
50+
v1[primes[i]].push_back(primes[j]);
51+
}
52+
}
53+
}
54+
55+
int main()
56+
{
57+
lli t;
58+
cin>>t;
59+
60+
buildprimes();
61+
buildgraph();
62+
while(t--)
63+
{
64+
lli n1, n2;
65+
cin>>n1>>n2;
66+
for(lli i = 1000; i<10000; i++)
67+
{
68+
visited[i] = false;
69+
dist[i] = -1;
70+
}
71+
visited[n1] = true;
72+
dist[n1] = 0;
73+
74+
queue <lli >q1;
75+
q1.push(n1);
76+
77+
while(!q1.empty())
78+
{
79+
lli temp = q1.front();
80+
q1.pop();
81+
for(lli j = 0; j<v1[temp].size(); j++)
82+
{
83+
if(visited[v1[temp][j]] == false)
84+
{
85+
visited[v1[temp][j]] = true;
86+
q1.push(v1[temp][j]);
87+
dist[v1[temp][j]] = dist[temp] + 1;
88+
}
89+
}
90+
}
91+
92+
if(dist[n2] != -1)
93+
cout<<dist[n2]<<endl;
94+
else
95+
cout<<"Impossible"<<endl;
96+
}
97+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
using namespace std;
4+
5+
6+
int main() {
7+
8+
int t;
9+
cin>>t;
10+
while(t--)
11+
{
12+
lli n, sum = 0,num=0,i=0;
13+
cin>>n;
14+
n--;
15+
lli n3 = n/3;
16+
lli n5 = n/5;
17+
lli n15 = n/15;
18+
lli sum3 = ((n3)*(n3+1))/2;
19+
lli sum5 = ((n5)*(n5+1))/2;
20+
lli sum15 = ((n15)*(n15+1))/2;
21+
lli ans3 = 3*sum3;
22+
lli ans5 = 5*sum5;
23+
lli ans15 = 15*sum15;
24+
cout<<ans3+ans5-ans15<<endl;
25+
}
26+
return 0;
27+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
using namespace std;
4+
5+
6+
int main() {
7+
int t;
8+
cin>>t;
9+
while(t--)
10+
{
11+
lli n,sum=2,prev = 0,num=2,newnum;
12+
cin>>n;
13+
while(1)
14+
{
15+
newnum = (num*4) + prev;
16+
prev = num;
17+
num = newnum;
18+
if(num <= n)
19+
sum += num;
20+
else
21+
break;
22+
}
23+
cout<<sum<<endl;
24+
}
25+
return 0;
26+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
#define endl "\n"
4+
using namespace std;
5+
6+
lli pf(lli n)
7+
{
8+
priority_queue <lli> pq;
9+
for(lli i=2; i*i<=n;i++)
10+
{
11+
if(n%i==0)
12+
{
13+
pq.push(i);
14+
while(n%i ==0)
15+
n /= i;
16+
}
17+
}
18+
if(n > 1)
19+
return n;
20+
else
21+
return pq.top();
22+
}
23+
24+
int main() {
25+
int t;
26+
cin>>t;
27+
while(t--)
28+
{
29+
lli n;
30+
cin>>n;
31+
cout<<pf(n)<<endl;
32+
}
33+
return 0;
34+
}
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
using namespace std;
4+
5+
bool ispalin(string s, int i ,int j)
6+
{
7+
if(i >= j)
8+
return true;
9+
if(s[i] != s[j])
10+
return false;
11+
12+
return ispalin(s, i+1 , j-1);
13+
}
14+
15+
int main() {
16+
/* Enter your code here. Read input from STDIN. Print output to STDOUT */
17+
int t;
18+
cin>>t;
19+
20+
while(t--)
21+
{
22+
lli n;
23+
cin>>n;
24+
lli large= 0;
25+
lli a,b,del;
26+
for(a = 999; a > 99; a--)
27+
{
28+
if(a % 11 == 0)
29+
{
30+
b = 999;
31+
del = 1;
32+
}
33+
else
34+
{
35+
b = 990;
36+
del = 11;
37+
}
38+
39+
while(b>=a)
40+
{
41+
string s = to_string(a*b);
42+
if (a*b <= large)
43+
break;
44+
45+
if(ispalin(s, 0, s.length()-1))
46+
if(a*b < n)
47+
large = max(a*b,large);
48+
49+
b = b-del;
50+
51+
}
52+
53+
54+
}
55+
cout<<large<<endl;
56+
}
57+
return 0;
58+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
using namespace std;
4+
5+
int main(){
6+
int t;
7+
cin>>t;
8+
int primes[12] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37};
9+
while(t--)
10+
{
11+
int n;
12+
cin>>n;
13+
lli answer = 1;
14+
for(int i=0; i<12; i++)
15+
{
16+
int ans = 1;
17+
while(ans <= n)
18+
ans *= primes[i];
19+
ans /= primes[i];
20+
answer *= ans;
21+
}
22+
cout<<answer<<endl;
23+
}
24+
return 0;
25+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
#define endl "\n"
4+
#define MAX 2005
5+
using namespace std;
6+
7+
8+
int main()
9+
{
10+
int n, data;
11+
cin>>n;
12+
vector<int>v1(n+1);
13+
14+
for(int i = 0; i<n; i++)
15+
{
16+
cin>>data;
17+
v1[data] = i+1;
18+
}
19+
20+
lli ansa(0), ansb(0);
21+
int q;
22+
cin>>q;
23+
while(q--)
24+
{
25+
cin>>data;
26+
ansa += v1[data];
27+
ansb += (n - v1[data] + 1);
28+
}
29+
cout<<ansa<<" "<<ansb;
30+
31+
32+
}

training-sheet/B/008. Easter Eggs.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#include <bits/stdc++.h>
2+
#define lli long long int
3+
#define endl "\n"
4+
#define MAX 2005
5+
using namespace std;
6+
7+
8+
int main()
9+
{
10+
int n, count = 0, i = 0;
11+
cin>>n;
12+
string s = "ROYGBIV";
13+
int rep = n/7;
14+
int extra = n%7;
15+
while(rep--)
16+
cout<<s;
17+
string list[7] = {"", "G", "GB", "YGB", "YGBI", "OYGBI" , "OYGBIV"};
18+
cout<<list[extra];
19+
}

0 commit comments

Comments
 (0)