Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit bd90b25

Browse files
Added problems
1 parent a580a6d commit bd90b25

File tree

8 files changed

+312
-61
lines changed

8 files changed

+312
-61
lines changed

‎.vscode/launch.json‎

Lines changed: 0 additions & 29 deletions
This file was deleted.

‎.vscode/settings.json‎

Lines changed: 0 additions & 6 deletions
This file was deleted.

‎.vscode/tasks.json‎

Lines changed: 0 additions & 26 deletions
This file was deleted.
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
typedef long long int lli;
6+
typedef vector<lli> vi;
7+
8+
lli mod = 1e9 + 7;
9+
10+
void task()
11+
{
12+
13+
lli lenCoins, desiredSum;
14+
cin >> lenCoins >> desiredSum;
15+
vi coins(lenCoins);
16+
for (lli i = 0; i < lenCoins; i++)
17+
cin >> coins[i];
18+
vi dp(desiredSum + 1, 0);
19+
sort(coins.begin(), coins.end());
20+
21+
dp[0] = 1;
22+
23+
for (lli i = coins[0]; i <= desiredSum; i++)
24+
{
25+
for (auto coin : coins)
26+
{
27+
if (coin <= i)
28+
{
29+
dp[i] += dp[i - coin];
30+
}
31+
else
32+
{
33+
break;
34+
}
35+
}
36+
dp[i] = dp[i] % mod;
37+
}
38+
39+
cout << dp[desiredSum] % mod << '\n';
40+
}
41+
42+
int main()
43+
{
44+
45+
ios::sync_with_stdio(false);
46+
cin.tie(NULL);
47+
48+
task();
49+
50+
return 0;
51+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
typedef int lli;
6+
typedef vector<lli> vi;
7+
8+
lli mod = 1e9 + 7;
9+
10+
void task()
11+
{
12+
13+
lli x;
14+
cin >> x;
15+
vi dp(x + 1, 0);
16+
17+
lli faces = 6;
18+
19+
for (lli i = 1; i <= x; i++)
20+
{
21+
if (i <= faces)
22+
{
23+
dp[i] = (lli)pow(2, i - 1);
24+
continue;
25+
}
26+
27+
for (lli f = 1; f <= faces; f++)
28+
{
29+
dp[i] = (dp[i] + dp[i - f]) % mod;
30+
}
31+
}
32+
33+
cout << dp[x] % mod << '\n';
34+
}
35+
36+
int main()
37+
{
38+
39+
ios::sync_with_stdio(false);
40+
cin.tie(NULL);
41+
42+
task();
43+
44+
return 0;
45+
}
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
typedef long long int lli;
6+
typedef vector<lli> vi;
7+
8+
void task()
9+
{
10+
11+
lli lenCoins, desiredSum;
12+
cin >> lenCoins >> desiredSum;
13+
vi coins(lenCoins);
14+
for (lli i = 0; i < lenCoins; i++)
15+
cin >> coins[i];
16+
vi dp(desiredSum + 1, INT_MAX);
17+
18+
dp[0] = 0;
19+
20+
for (lli i = 1; i <= desiredSum; i++)
21+
{
22+
for (auto coin : coins)
23+
{
24+
if (coin <= i)
25+
{
26+
dp[i] = min(dp[i], dp[i - coin] + 1);
27+
}
28+
}
29+
}
30+
31+
if (dp[desiredSum] == INT_MAX)
32+
{
33+
cout << "-1\n";
34+
}
35+
else
36+
{
37+
cout << dp[desiredSum] << '\n';
38+
}
39+
}
40+
41+
int main()
42+
{
43+
44+
ios::sync_with_stdio(false);
45+
cin.tie(NULL);
46+
47+
task();
48+
49+
return 0;
50+
}

‎maximum-subarray-ii.cpp‎

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
typedef long long int lli;
6+
typedef vector<lli> vi;
7+
typedef tuple<lli, lli> ii;
8+
typedef tuple<lli, lli, lli> iii;
9+
10+
void task()
11+
{
12+
13+
lli lenNumbers, minLength, maxLength;
14+
cin >> lenNumbers >> minLength >> maxLength;
15+
vi numbers(lenNumbers);
16+
for (lli i = 0; i < lenNumbers; i++)
17+
cin >> numbers[i];
18+
lli currLength = 0;
19+
lli currSum = 0;
20+
lli bestSum = LONG_LONG_MIN;
21+
for (lli i = 0; i < lenNumbers; i++)
22+
{
23+
24+
lli num = numbers[i];
25+
26+
if (num > currSum + num)
27+
{
28+
currSum = num;
29+
currLength = 1;
30+
}
31+
else
32+
{
33+
currSum += num;
34+
currLength++;
35+
}
36+
37+
if (currLength > maxLength)
38+
{
39+
currSum = num;
40+
currLength = 1;
41+
}
42+
43+
if (currLength >= minLength && currLength <= maxLength)
44+
{
45+
bestSum = max(currSum, bestSum);
46+
}
47+
}
48+
49+
cout<<bestSum<<'\n';
50+
}
51+
52+
int main()
53+
{
54+
55+
ios::sync_with_stdio(0);
56+
cin.tie(0);
57+
58+
task();
59+
60+
return 0;
61+
}

‎planet-queries-i.cpp‎

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
#include <bits/stdc++.h>
2+
3+
using namespace std;
4+
5+
typedef long long int lli;
6+
typedef vector<lli> vi;
7+
8+
class Graph
9+
{
10+
11+
vi adj;
12+
vi cycle;
13+
lli nodes;
14+
15+
public:
16+
Graph(lli _nodes, vi _adj)
17+
{
18+
nodes = _nodes;
19+
adj.assign(_adj.begin(), _adj.end());
20+
cycle.resize(_nodes + 1, 0);
21+
}
22+
23+
void preprocess()
24+
{
25+
26+
for (lli i = 1; i <= nodes; i++)
27+
{
28+
lli x = adj[i];
29+
lli count = 0;
30+
bool failedToReturn = false;
31+
while (x != i)
32+
{
33+
count++;
34+
cycle[i]++;
35+
x = adj[x];
36+
if (count > nodes)
37+
{
38+
failedToReturn = true;
39+
break;
40+
}
41+
}
42+
cycle[i]++;
43+
if (failedToReturn)
44+
{
45+
cycle[i] = 0;
46+
}
47+
}
48+
}
49+
50+
lli destinationNode(lli planet, lli distance)
51+
{
52+
53+
lli x = planet;
54+
lli endgame = false;
55+
56+
while (distance)
57+
{
58+
if (cycle[x] == 0 || endgame)
59+
{
60+
x = adj[x];
61+
distance--;
62+
continue;
63+
}
64+
65+
if (cycle[x] == 1)
66+
{
67+
return x;
68+
}
69+
70+
distance = distance % cycle[x];
71+
endgame = true;
72+
}
73+
74+
return x;
75+
}
76+
};
77+
78+
void task()
79+
{
80+
lli lenPlanets, lenQueries;
81+
cin >> lenPlanets >> lenQueries;
82+
vi adj(lenPlanets + 1, 0);
83+
for (lli i = 1; i <= lenPlanets; i++)
84+
{
85+
cin >> adj[i];
86+
}
87+
Graph g(lenPlanets, adj);
88+
g.preprocess();
89+
lli planet, distance;
90+
for (lli i = 0; i < lenQueries; i++)
91+
{
92+
cin >> planet >> distance;
93+
cout << g.destinationNode(planet, distance) << '\n';
94+
}
95+
}
96+
97+
int main()
98+
{
99+
100+
ios::sync_with_stdio(false);
101+
cin.tie(NULL);
102+
103+
task();
104+
return 0;
105+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /