Skip to content

Commit 0b78d14

Browse files
committed
line endings changed
1 parent 6f7b88a commit 0b78d14

22 files changed

+1132
-132
lines changed

src/1086 - Writing Numbers.cpp

+40-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,40 @@
1-
/*
2-
Problem Name: Writing Numbers
3-
Problem Link: https://cses.fi/problemset/task/1086
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'bool check(int n, int k) { int ans = 0; for (int i = 1; i <= n; i*=10) { int d = i*10; ans += n/d*i + min(max(n%d-i+1,0LL), i); } if (ans <= k) return 1; return 0;} signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif int k; cin>>k; int l = 1, h = 6e17; int ans = 1; while(l <= h ) { int m = (l+h)/2; if (check(m, k)) { ans = m; l = m + 1; } else h = m - 1; } cout<<ans;}
1+
/*
2+
Problem Name: Writing Numbers
3+
Problem Link: https://cses.fi/problemset/task/1086
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
#define int long long
10+
#define endl '\n'
11+
12+
bool check(int n, int k) {
13+
int ans = 0;
14+
for (int i = 1; i <= n; i*=10) {
15+
int d = i*10;
16+
ans += n/d*i + min(max(n%d-i+1,0LL), i);
17+
}
18+
if (ans <= k) return 1;
19+
return 0;
20+
}
21+
signed main(){
22+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
23+
#ifdef LOCAL
24+
freopen("input.txt", "r" , stdin);
25+
freopen("output.txt", "w", stdout);
26+
#endif
27+
28+
int k; cin>>k;
29+
int l = 1, h = 6e17;
30+
int ans = 1;
31+
while(l <= h ) {
32+
int m = (l+h)/2;
33+
if (check(m, k)) {
34+
ans = m;
35+
l = m + 1;
36+
}
37+
else h = m - 1;
38+
}
39+
cout<<ans;
40+
}

src/1087 - Shortest Subsequence.cpp

+46-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,46 @@
1-
/*
2-
Problem Name: Shortest Subsequence
3-
Problem Link: https://cses.fi/problemset/task/1087
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;// #define int long long#define endl '\n'signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif string s; cin>>s; int l = 0, r = 0; bool a = 0, b = 0, c = 0, d = 0; int n = s.size(); string ans; while(l < n) { a = 0, b = 0, c = 0, d = 0; a += (s[l] == 'A'); b += (s[l] == 'C'); c += (s[l] == 'G'); d += (s[l] == 'T'); r = l+1; while(r < n && a+b+c+d != 4) { a += (s[r] == 'A'); b += (s[r] == 'C'); c += (s[r] == 'G'); d += (s[r] == 'T'); r++; } if (a+b+c+d == 4) ans += s[r-1]; l = r; } cerr<<a<<' '<<b<<' '<<c<<' '<<d; if (a+b+c+d == 4) ans += 'A'; else if (!a) ans += 'A'; else if (!b) ans += 'C'; else if (!c) ans += 'G'; else if (!d) ans += 'T'; cout<<ans;}
1+
/*
2+
Problem Name: Shortest Subsequence
3+
Problem Link: https://cses.fi/problemset/task/1087
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
// #define int long long
10+
#define endl '\n'
11+
12+
signed main(){
13+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
14+
#ifdef LOCAL
15+
freopen("input.txt", "r" , stdin);
16+
freopen("output.txt", "w", stdout);
17+
#endif
18+
19+
string s; cin>>s;
20+
int l = 0, r = 0;
21+
bool a = 0, b = 0, c = 0, d = 0;
22+
int n = s.size();
23+
string ans;
24+
while(l < n) {
25+
a = 0, b = 0, c = 0, d = 0;
26+
a += (s[l] == 'A'); b += (s[l] == 'C');
27+
c += (s[l] == 'G'); d += (s[l] == 'T');
28+
r = l+1;
29+
while(r < n && a+b+c+d != 4) {
30+
a += (s[r] == 'A'); b += (s[r] == 'C');
31+
c += (s[r] == 'G'); d += (s[r] == 'T');
32+
r++;
33+
}
34+
if (a+b+c+d == 4)
35+
ans += s[r-1];
36+
l = r;
37+
}
38+
cerr<<a<<' '<<b<<' '<<c<<' '<<d;
39+
if (a+b+c+d == 4)
40+
ans += 'A';
41+
else if (!a) ans += 'A';
42+
else if (!b) ans += 'C';
43+
else if (!c) ans += 'G';
44+
else if (!d) ans += 'T';
45+
cout<<ans;
46+
}

src/1134 - Prüfer Code.cpp

+39-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,39 @@
1-
/*
2-
Problem Name: Prüfer Code
3-
Problem Link: https://cses.fi/problemset/task/1134
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif int n; cin>>n; vector<int> v(n-2); set<int> s; for (int i = 1; i <= n; i++) s.insert(i); int a[n+1] = {0}; for (auto &i: v) { cin>>i; a[i]++; if (s.count(i)) s.erase(i); } for (int i = 0; i < n-2; i++) { int x = *s.begin(); s.erase(x); cout<<x<<' '<<v[i]<<endl; a[v[i]]--; if (a[v[i]] == 0) s.insert(v[i]); } cout<<*s.begin()<<' '<<*s.rbegin();}
1+
/*
2+
Problem Name: Prüfer Code
3+
Problem Link: https://cses.fi/problemset/task/1134
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
#define int long long
10+
#define endl '\n'
11+
12+
signed main(){
13+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
14+
#ifdef LOCAL
15+
freopen("input.txt", "r" , stdin);
16+
freopen("output.txt", "w", stdout);
17+
#endif
18+
19+
int n; cin>>n;
20+
vector<int> v(n-2);
21+
set<int> s;
22+
for (int i = 1; i <= n; i++)
23+
s.insert(i);
24+
int a[n+1] = {0};
25+
for (auto &i: v) {
26+
cin>>i;
27+
a[i]++;
28+
if (s.count(i))
29+
s.erase(i);
30+
}
31+
for (int i = 0; i < n-2; i++) {
32+
int x = *s.begin();
33+
s.erase(x);
34+
cout<<x<<' '<<v[i]<<endl;
35+
a[v[i]]--;
36+
if (a[v[i]] == 0) s.insert(v[i]);
37+
}
38+
cout<<*s.begin()<<' '<<*s.rbegin();
39+
}

src/1142 - Advertisement.cpp

+48-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,48 @@
1-
/*
2-
Problem Name: Advertisement
3-
Problem Link: https://cses.fi/problemset/task/1142
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif int n; cin>>n; int pre[n] = {0}, suf[n+1] = {0}, a[n]; int ans = 0; stack<pair<int, int>> q; for (int i = 0; i < n; i++) { cin>>a[i]; while(!q.empty() && q.top().first >= a[i]) q.pop(); int x = -1; if (!q.empty()) { x = q.top().second; } pre[i] = 1 + i-x-1; q.push({a[i], i}); } while(!q.empty()) q.pop(); for (int i = n-1; i >= 0; i--) { while(!q.empty() && q.top().first >= a[i]) q.pop(); int x = n; if (!q.empty()) { x = q.top().second; } suf[i] = 1 + x-i-1; q.push({a[i], i}); ans = max(ans, (pre[i]+suf[i]-1)*a[i]); } cout<<ans;}
1+
/*
2+
Problem Name: Advertisement
3+
Problem Link: https://cses.fi/problemset/task/1142
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
#define int long long
10+
#define endl '\n'
11+
12+
signed main(){
13+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
14+
#ifdef LOCAL
15+
freopen("input.txt", "r" , stdin);
16+
freopen("output.txt", "w", stdout);
17+
#endif
18+
19+
int n; cin>>n;
20+
int pre[n] = {0}, suf[n+1] = {0}, a[n];
21+
int ans = 0;
22+
stack<pair<int, int>> q;
23+
for (int i = 0; i < n; i++) {
24+
cin>>a[i];
25+
while(!q.empty() && q.top().first >= a[i])
26+
q.pop();
27+
int x = -1;
28+
if (!q.empty()) {
29+
x = q.top().second;
30+
}
31+
pre[i] = 1 + i-x-1;
32+
q.push({a[i], i});
33+
}
34+
while(!q.empty()) q.pop();
35+
36+
for (int i = n-1; i >= 0; i--) {
37+
while(!q.empty() && q.top().first >= a[i])
38+
q.pop();
39+
int x = n;
40+
if (!q.empty()) {
41+
x = q.top().second;
42+
}
43+
suf[i] = 1 + x-i-1;
44+
q.push({a[i], i});
45+
ans = max(ans, (pre[i]+suf[i]-1)*a[i]);
46+
}
47+
cout<<ans;
48+
}

src/1146 - Counting Bits.cpp

+33-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,33 @@
1-
/*
2-
Problem Name: Counting Bits
3-
Problem Link: https://cses.fi/problemset/task/1146
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif int n; cin>>n; int dp[50] = {0}; dp[0] = 1; for (int i = 1; i < 50; i++) dp[i] = 2*dp[i-1] + ((1LL<<(i-1)) - 1); int ans = 0; while(n>0) { int b = log2(n); ans += dp[b]; b = 1LL<<b; ans += n - b; n = n - b; } cout<<ans;}
1+
/*
2+
Problem Name: Counting Bits
3+
Problem Link: https://cses.fi/problemset/task/1146
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
#define int long long
10+
#define endl '\n'
11+
12+
signed main(){
13+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
14+
#ifdef LOCAL
15+
freopen("input.txt", "r" , stdin);
16+
freopen("output.txt", "w", stdout);
17+
#endif
18+
19+
int n; cin>>n;
20+
int dp[50] = {0};
21+
dp[0] = 1;
22+
for (int i = 1; i < 50; i++)
23+
dp[i] = 2*dp[i-1] + ((1LL<<(i-1)) - 1);
24+
int ans = 0;
25+
while(n>0) {
26+
int b = log2(n);
27+
ans += dp[b];
28+
b = 1LL<<b;
29+
ans += n - b;
30+
n = n - b;
31+
}
32+
cout<<ans;
33+
}

src/1149 - String Removals.cpp

+36-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,36 @@
1-
/*
2-
Problem Name: String Removals
3-
Problem Link: https://cses.fi/problemset/task/1149
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'const int mxN = 500005;const int md = 1e9+7;int dp[mxN];int ind[26];signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif string s; cin>>s; int n = s.size(); memset(ind, -1, sizeof ind); dp[0] = 1; for (int i = 1; i <= n; i++) { dp[i] = 2*dp[i-1]; if (ind[s[i-1]-'a'] >= 0) dp[i] -= dp[ind[s[i-1]-'a']]; dp[i] = (dp[i] + md)%md; ind[s[i-1]-'a'] = i-1; } cout<<(dp[n]-1+md)%md;}
1+
/*
2+
Problem Name: String Removals
3+
Problem Link: https://cses.fi/problemset/task/1149
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
#define int long long
10+
#define endl '\n'
11+
12+
const int mxN = 500005;
13+
const int md = 1e9+7;
14+
int dp[mxN];
15+
int ind[26];
16+
signed main(){
17+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
18+
#ifdef LOCAL
19+
freopen("input.txt", "r" , stdin);
20+
freopen("output.txt", "w", stdout);
21+
#endif
22+
23+
string s; cin>>s;
24+
int n = s.size();
25+
memset(ind, -1, sizeof ind);
26+
dp[0] = 1;
27+
for (int i = 1; i <= n; i++) {
28+
dp[i] = 2*dp[i-1];
29+
if (ind[s[i-1]-'a'] >= 0)
30+
dp[i] -= dp[ind[s[i-1]-'a']];
31+
32+
dp[i] = (dp[i] + md)%md;
33+
ind[s[i-1]-'a'] = i-1;
34+
}
35+
cout<<(dp[n]-1+md)%md;
36+
}

src/1157 - Number Grid.cpp

+21-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,21 @@
1-
/*
2-
Problem Name: Number Grid
3-
Problem Link: https://cses.fi/problemset/task/1157
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif int x,y; cin>>x>>y; cout<<((x-1)^(y-1));}
1+
/*
2+
Problem Name: Number Grid
3+
Problem Link: https://cses.fi/problemset/task/1157
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
#define int long long
10+
#define endl '\n'
11+
12+
signed main(){
13+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
14+
#ifdef LOCAL
15+
freopen("input.txt", "r" , stdin);
16+
freopen("output.txt", "w", stdout);
17+
#endif
18+
19+
int x,y; cin>>x>>y;
20+
cout<<((x-1)^(y-1));
21+
}

src/1159 - Book Shop II.cpp

+51-6
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,51 @@
1-
/*
2-
Problem Name: Book Shop II
3-
Problem Link: https://cses.fi/problemset/task/1159
4-
Author: Sachin Srivastava (mrsac7)
5-
*/
6-
#include<bits/stdc++.h>using namespace std;#define int long long#define endl '\n'int dp[100005];signed main(){ ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0); #ifdef LOCAL freopen("input.txt", "r" , stdin); freopen("output.txt", "w", stdout); #endif int n, x; cin>>n>>x; vector<int> cost; vector<int> val; int a[n], b[n], c[n]; for (int i = 0; i < n; i++) cin>>a[i]; for (int i = 0; i < n; i++) cin>>c[i]; // converstion to 0-1 knapsack for (int i = 0; i < n; i++) { cin>>b[i]; int x = 1; while(b[i] - x >=0) { cost.push_back(x*a[i]); val.push_back(x*c[i]); b[i] -= x; x*=2; } if (b[i]) { cost.push_back(b[i]*a[i]); val.push_back(b[i]*c[i]); } } n = cost.size(); for (int i = 0; i < n; i++) { for (int j = x; j >0; j--) { if (j >= cost[i]) dp[j] = max(dp[j], val[i] + dp[j-cost[i]]); } } cout<<dp[x];}
1+
/*
2+
Problem Name: Book Shop II
3+
Problem Link: https://cses.fi/problemset/task/1159
4+
Author: Sachin Srivastava (mrsac7)
5+
*/
6+
#include<bits/stdc++.h>
7+
using namespace std;
8+
9+
#define int long long
10+
#define endl '\n'
11+
12+
int dp[100005];
13+
signed main(){
14+
ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
15+
#ifdef LOCAL
16+
freopen("input.txt", "r" , stdin);
17+
freopen("output.txt", "w", stdout);
18+
#endif
19+
20+
int n, x; cin>>n>>x;
21+
vector<int> cost;
22+
vector<int> val;
23+
int a[n], b[n], c[n];
24+
for (int i = 0; i < n; i++)
25+
cin>>a[i];
26+
for (int i = 0; i < n; i++)
27+
cin>>c[i];
28+
// converstion to 0-1 knapsack
29+
for (int i = 0; i < n; i++) {
30+
cin>>b[i];
31+
int x = 1;
32+
while(b[i] - x >=0) {
33+
cost.push_back(x*a[i]);
34+
val.push_back(x*c[i]);
35+
b[i] -= x;
36+
x*=2;
37+
}
38+
if (b[i]) {
39+
cost.push_back(b[i]*a[i]);
40+
val.push_back(b[i]*c[i]);
41+
}
42+
}
43+
n = cost.size();
44+
for (int i = 0; i < n; i++) {
45+
for (int j = x; j >0; j--) {
46+
if (j >= cost[i])
47+
dp[j] = max(dp[j], val[i] + dp[j-cost[i]]);
48+
}
49+
}
50+
cout<<dp[x];
51+
}

0 commit comments

Comments
 (0)