Skip to content

Commit 57563d6

Browse files
author
ksh-code
committedAug 30, 2022
y
1 parent 9ed0732 commit 57563d6

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+2015
-0
lines changed
 

‎00000000008cb0f5/0000000000ba82c5.cpp

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#include <bits/stdc++.h>
2+
3+
#pragma GCC optimize ("O3")
4+
#pragma GCC optimize ("Ofast")
5+
#pragma GCC optimize ("unroll-loops")
6+
#pragma GCC target("avx,avx2,fma")
7+
8+
using namespace std;
9+
typedef long long ll;
10+
11+
12+
int xxxx[]={-1,0,1,0,-1,1,1,-1};
13+
int yyyy[]={0,1,0,-1,-1,1,-1,1};
14+
15+
16+
void solve(){
17+
int N; cin >> N;
18+
string str; cin >> str;
19+
if (str.size() <= 2) {
20+
cout << str[0];
21+
return;
22+
}
23+
int pi[N]; memset(pi, 0, sizeof pi);
24+
for (int i = 1, j = 0; i < N; i++) {
25+
while (j > 0 && str[i] != str[j])
26+
j = pi[j - 1];
27+
if (str[i] == str[j])
28+
pi[i] = ++j;
29+
}
30+
string pal = "";
31+
for (int i = N-pi[N-1]-1; i >= 0 ; i--) pal += str[i];
32+
bool found = true;
33+
for (int i = 0; i < pal.size() / 2; i++) found &= pal[i] == pal[pal.size() - i - 1];
34+
if (!found) pal = str[N-pi[N-1]] + pal;
35+
cout << pal;
36+
}
37+
38+
int main()
39+
{
40+
cin.tie(0)->sync_with_stdio(false);
41+
int T=1;
42+
cin >>T;
43+
for (int i = 1; i <= T; i++) {
44+
cout << "Case #" << i << ": ";
45+
solve();
46+
cout << '\n';
47+
}
48+
return 0;
49+
}

‎00000000008cb0f5/0000000000ba84ae.cpp

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#include <bits/stdc++.h>
2+
3+
#pragma GCC optimize ("O3")
4+
#pragma GCC optimize ("Ofast")
5+
#pragma GCC optimize ("unroll-loops")
6+
#pragma GCC target("avx,avx2,fma")
7+
8+
using namespace std;
9+
typedef long long ll;
10+
11+
12+
int xxxx[]={-1,0,1,0,-1,1,1,-1};
13+
int yyyy[]={0,1,0,-1,-1,1,-1,1};
14+
15+
16+
void solve(){
17+
int N; cin >> N;
18+
int arr[N]; for (auto &a: arr) cin >> a;
19+
int arr2[N]; for (int i = 0; i < N; i++) arr2[i] = arr[i];
20+
sort(arr2,arr2+N);
21+
for (int i = 0; i < N; i++) {
22+
int j = upper_bound(arr2,arr2+N, arr[i]*2) - arr2 - 1;
23+
if (arr2[j]==arr[i]) j--;
24+
if (j>=0&&arr2[j] <= arr[i] * 2) cout << arr2[j];
25+
else cout << -1;
26+
cout << ' ';
27+
}
28+
}
29+
30+
int main()
31+
{
32+
cin.tie(0)->sync_with_stdio(false);
33+
int T=1;
34+
cin >>T;
35+
for (int i = 1; i <= T; i++) {
36+
cout << "Case #" << i << ": ";
37+
solve();
38+
cout << '\n';
39+
}
40+
return 0;
41+
}

0 commit comments

Comments
 (0)