Appearance
problem 1
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void selectionSort(vll &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < vec.size(); j++)
{
if (vec[j] < vec[minIndex])
minIndex = j;
}
swap(vec[i], vec[minIndex]);
}
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_Input();
vll vec = {6, 5, 1, 3, 4};
int k;
cin >> k;
selectionSort(vec);
cout << vec[k - 1] << nl;
return 0;
}
Problem 2
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void selectionSort(vll &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < vec.size(); j++)
{
if (vec[j] < vec[minIndex])
minIndex = j;
}
swap(vec[i], vec[minIndex]);
}
}
ll findMedian(vll vec)
{
selectionSort(vec);
return vec[vec.size() / 2];
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_Input();
vll vec = {6, 5, 1, 3, 4};
cout << findMedian(vec) << nl;
return 0;
}
Problem 3
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void selectionSort(vll &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < vec.size(); j++)
{
if (vec[j] < vec[minIndex])
minIndex = j;
}
swap(vec[i], vec[minIndex]);
}
}
ll findSmallestDiff(vll vec)
{
ll minDiff = LLONG_MAX;
for (int i = 1; i < vec.size(); i++)
minDiff = min(minDiff, (vec[i] - vec[i - 1]));
return ((minDiff == LLONG_MAX) ? 0 : minDiff);
}
vll take_input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_input();
vll vec = {6, 5, 1, 3, 4, 4};
for (auto &i : vec)
cin >> i;
selectionSort(vec);
cout << findSmallestDiff(vec) << nl;
return 0;
}
Problem 4
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void sortByAbsValue(vll &vec)
{
// Selection Sort
for (int i = 0; i < vec.size() - 1; i++)
{
ll minIdx = i;
for (int j = i + 1; j < vec.size(); j++)
{
if (abs(vec[j]) < abs(vec[minIdx]))
minIdx = j;
}
swap(vec[i], vec[minIdx]);
}
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_Input();
vll vec = {6, 5, 1, 3, 4, -10, -5};
sortByAbsValue(vec);
for (auto &i : vec)
cout << i << " ";
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void sortByAbsValue(vll &vec)
{
for (int i = 0; i < vec.size(); i++)
{
for (int j = 0; j < vec.size() - i - 1; j++)
{
if (abs(vec[j]) > abs(vec[j + 1]))
swap(vec[j], vec[j + 1]);
}
}
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_Input();
vll vec = {6, 5, 1, 3, 4, -10, -5};
sortByAbsValue(vec);
for (auto &i : vec)
cout << i << " ";
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void sortByAbsValue(vll &vec)
{
for (int i = 1; i < vec.size(); i++)
{
ll key = vec[i];
ll j = i - 1;
while (j >= 0 && abs(vec[j]) > abs(key))
{
vec[j + 1] = vec[j];
j--;
}
vec[j + 1] = key;
}
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_Input();
vll vec = {6, 5, 1, 3, 4, -10, -5};
sortByAbsValue(vec);
for (auto &i : vec)
cout << i << " ";
return 0;
}
Problem 5
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void sortByLength(vector<string> &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < vec.size(); j++)
{
if (vec[j].length() < vec[minIndex].length())
minIndex = j;
}
swap(vec[i], vec[minIndex]);
}
}
vector<string> take_Input()
{
int n;
cin >> n;
vector<string> vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vector<string> vec = take_Input();
vector<string> vec = {"Optimus", "Prime", "heXcore", "Knight", "Fury"};
sortByLength(vec);
for (auto &i : vec)
cout << i << " ";
return 0;
}
Problem 6
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void oddDesc_evenAsc(vll &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
int index = i;
for (int j = i + 1; j < vec.size(); j++)
{
if (vec[j] < vec[index] && !(j % 2) && !(i % 2))
index = j;
else if (vec[j] > vec[index] && (j % 2) && (i % 2))
index = j;
}
swap(vec[i], vec[index]);
}
}
void print_me(vll vec)
{
for (auto &i : vec)
cout << i << " ";
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
vll vec = {16, 17, 4, 18, 1, 20, 5, 12};
// vll vec = take_Input();
oddDesc_evenAsc(vec);
print_me(vec);
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void oddDesc_evenAsc (vll &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
for (int j = 0; j < vec.size() - i - 2; j++)
{
if (vec[j] < vec[j + 2] && (j % 2))
swap(vec[j], vec[j + 2]);
if (vec[j] > vec[j + 2] && !(j % 2))
swap(vec[j], vec[j + 2]);
}
}
}
void print_me(vll vec)
{
for (auto &i : vec)
cout << i << " ";
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
vll vec = {16, 17, 4, 18, 1, 20, 5, 12};
// vll vec = take_Input();
oddDesc_evenAsc(vec);
print_me(vec);
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void oddDesc_evenAsc(vll &vec)
{
//Odd Index sort
for (int i = 1; i < vec.size(); i += 2)
{
int key = vec[i];
int j = i - 2;
while (j > 0 && vec[j] < key)
{
vec[j + 2] = vec[j];
j -= 2;
}
vec[j + 2] = key;
}
//Even Index sort
for (int i = 2; i < vec.size(); i += 2)
{
int key = vec[i];
int j = i - 2;
while (j >= 0 && vec[j] > key)
{
vec[j + 2] = vec[j];
j -= 2;
}
vec[j + 2] = key;
}
}
void print_me(vll vec)
{
for (auto &i : vec)
cout << i << " ";
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
vll vec = {16, 17, 4, 18, 1, 20, 5, 12};
// vll vec = take_Input();
oddDesc_evenAsc(vec);
print_me(vec);
return 0;
}
Problem 7
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void selectionSort(vll &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
int minIndex = i;
for (int j = i + 1; j < vec.size(); j++)
{
if (vec[j] < vec[minIndex])
minIndex = j;
}
swap(vec[i], vec[minIndex]);
}
}
ll lngst_cnsqtv_sbsqnc(vll vec)
{
ll max_seq = 0;
ll temp = 0;
for (int i = 0; i < vec.size() - 1; i++)
{
if (vec[i + 1] - vec[i] == 1)
{
temp++;
max_seq = max(max_seq, temp);
}
else
temp = 0;
}
return ++max_seq;
}
void print_me(vll vec)
{
for (auto &i : vec)
cout << i << " ";
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
vll vec = {1, 9, 3, 10, 4, 20, 2};
// vll vec = take_Input();
selectionSort(vec);
cout << lngst_cnsqtv_sbsqnc(vec) << nl;
return 0;
}
Problem 8
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
ll compare(ll x, ll y)
{
return x - y;
}
void bubleSort(vll &vec, ll arr[])
{
ll n = vec.size();
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (compare(arr[vec[j]], arr[vec[j + 1]]) > 0)
{
swap(vec[j], vec[j + 1]);
}
if (compare(arr[vec[j]], arr[vec[j + 1]]) == 0)
{
if (vec[j] > vec[j + 1])
swap(vec[j], vec[j + 1]);
}
}
}
}
void print_me(vll vec)
{
for (auto &i : vec)
cout << i << " ";
cout << nl;
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_Input();
vll vec = {4, 3, 6, 6, 6, 6, 1, 3, 4, 4, 1, 0, 0};
// vll vec = {4, 3, 1, 6, 1, 3, 4, 4};
ll arr[vec.size() + 1] = {0};
for (int i = 0; i < vec.size(); i++)
arr[vec[i]]++;
bubleSort(vec, arr);
print_me(vec);
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void print_me(vll vec)
ll compare(ll x, ll y)
{
return x - y;
}
void selectionSort(vll &vec, ll arr[])
{
ll n = vec.size();
for (int i = 0; i < n; i++)
{
ll index = i;
for (int j = i + 1; j < n; j++)
{
if (compare(arr[vec[j]], arr[vec[index]]) > 0)
{
index = j;
}
if (compare(arr[vec[j]], arr[vec[index]]) == 0)
{
if (vec[j] < vec[index])
index = j;
}
}
swap(vec[index], vec[i]);
}
}
void print_me(vll vec)
{
for (auto &i : vec)
cout << i << " ";
cout << nl;
}
vll take_Input()
{
int n;
cin >> n;
vll vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vll vec = take_Input();
vll vec = {4, 3, 6, 6, 6, 6, 1, 3, 4, 4, 1, 0, 0};
// vll vec = {4, 3, 1, 6, 1, 3, 4, 4};
ll arr[vec.size() + 1] = {0};
for (int i = 0; i < vec.size(); i++)
arr[vec[i]]++;
selectionSort(vec, arr);
print_me(vec);
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
vector<int> freq(7, 0);
bool is_greater(int value, int key)
{
if (freq[value] < freq[key])
return true;
else if (freq[value] == freq[key])
return value > key;
return false;
}
void insertionSort(vector<int> &vec)
{
for (int i = 1; i < vec.size(); i++)
{
int key = vec[i];
int j = i - 1;
while (j >= 0 && is_greater(vec[j], key))
{
vec[j + 1] = vec[j];
j--;
}
vec[j + 1] = key;
}
}
int main()
{
vector<int> vec = {3, 4, 1, 6, 1, 3, 4, 4};
for (int i = 0; i < vec.size(); i++)
freq[vec[i]]++;
insertionSort(vec);
for (auto &x : vec)
cout << x << " ";
return 0;
}
Problem 9
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
int compare(pair<ll, ll> pr)
{
return pr.second - pr.first;
}
void sortByDuration(vector<pair<ll, ll>> &vec)
{
for (int i = 0; i < vec.size() - 1; i++)
{
for (int j = 0; j < vec.size() - i - 1; j++)
{
if (compare(vec[j]) > compare(vec[j + 1]))
swap(vec[j], vec[j + 1]);
}
}
}
void take_Input(vector<pair<ll, ll>> &vec)
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
ll first, second;
cin >> first >> second;
vec.push_back({first, second});
}
}
int main()
{
// vector<pair<ll, ll>> vec;
// take_Input(vec);
{% raw %}
vector<pair<ll, ll>> vec = {{2, 5}, {1, 2}, {4, 6}};
{% endraw %}
sortByDuration(vec);
for (auto x : vec)
cout << "(" << x.first << "," << x.second << ") ";
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
int compare(pair<ll, ll> pr)
{
return pr.second - pr.first;
}
void sortByDuration(vector<pair<ll, ll>> &vec)
{
for (int i = 0; i < vec.size(); i++)
{
ll index = i;
for (int j = i + 1; j < vec.size(); j++)
if (compare(vec[index]) > compare(vec[j]))
index = j;
swap(vec[index], vec[i]);
}
}
void take_Input(vector<pair<ll, ll>> &vec)
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
ll first, second;
cin >> first >> second;
vec.push_back({first, second});
}
}
int main()
{
// vector<pair<ll, ll>> vec;
// take_Input(vec);
{% raw %}
vector<pair<ll, ll>> vec = {{2, 5}, {1, 2}, {4, 6}};
{% endraw %}
sortByDuration(vec);
for (auto x : vec)
cout << "(" << x.first << "," << x.second << ") ";
return 0;
}
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
int compare(pair<ll, ll> pr)
{
return pr.second - pr.first;
}
void sortByDuration(vector<pair<ll, ll>> &vec)
{
for (int i = 1; i < vec.size(); i++)
{
pair<ll, ll> key = vec[i];
ll j = i - 1;
while (j >= 0 && compare(vec[j]) > compare(key))
{
vec[j + 1] = vec[j];
j--;
}
vec[j + 1] = key;
}
}
void take_Input(vector<pair<ll, ll>> &vec)
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
ll first, second;
cin >> first >> second;
vec.push_back({first, second});
}
}
int main()
{
// vector<pair<ll, ll>> vec;
// take_Input(vec);
{% raw %}
vector<pair<ll, ll>> vec = {{2, 5}, {1, 2}, {4, 6}};
{% endraw %}
sortByDuration(vec);
for (auto x : vec)
cout << "(" << x.first << "," << x.second << ") ";
return 0;
}
problem 10
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void insertionSort(vector<string> &vec)
{
for (int i = 1; i < vec.size(); i++)
{
string str = vec[i];
ll j = i - 1;
while (j >= 0 && vec[j].length() > str.length())
{
vec[j + 1] = vec[j];
j--;
}
vec[j + 1] = str;
}
}
vector<string> take_Input()
{
int n;
cin >> n;
vector<string> vec(n);
for (auto &i : vec)
cin >> i;
return vec;
}
int main()
{
// vector<string> vec = take_Input();
// vector<string> vec = {"Optimus", "Primuss", "heXcore", "Knight", "Fury"};
vector<string> vec = {"apple", "banana", "kiwi", "grape", "orange"};
insertionSort(vec);
for (auto &i : vec)
cout << i << " ";
return 0;
}
problem 11
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
ll digitSum(ll digit)
{
ll sum = 0;
while (digit > 0)
{
sum += digit % 10;
digit /= 10;
}
return sum;
}
void sortBySumOfDigit(vll &vec)
{
int n = vec.size();
for (int i = 0; i < n; ++i)
{
int minIdx = i;
int minSum = digitSum(vec[i]);
for (int j = i + 1; j < n; ++j)
{
int temp = digitSum(vec[j]);
if (temp < minSum)
{
minSum = temp;
minIdx = j;
}
}
int key = vec[minIdx];
for (int k = minIdx; k > i; --k)
{
vec[k] = vec[k - 1];
}
vec[i] = key;
}
}
int main()
{
vll vec = {19, 28, 92, 35, 47, 19};
sortBySumOfDigit(vec);
for (auto &x : vec)
cout << x << " ";
return 0;
}
problem 12
c++
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define vll vector<ll>
#define nl '\n'
void sort_Float(vector<double> &vec)
{
ll n = vec.size();
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - i - 1; j++)
{
if (vec[j] > vec[j + 1])
swap(vec[j], vec[j + 1]);
}
}
}
int main()
{
vector<double> vec = {3.14, 2.71, 1.41, 4.67, 2.98};
sort_Float(vec);
for (auto &x : vec)
cout << x << " ";
return 0;
}