Commit b33e2d55d4c0e63bbb07289291a1841a365daf36

Authored by Ronaldo Silva
Committed by Ronaldo
1 parent 76e94dfea8
Exists in main

Create directory Unordered_Set and file Duplicates.cpp.

Showing 2 changed files with 43 additions and 1 deletions Inline Diff

SearchingSortingandBasicDataStructures/InbuiltSorting/Problem5/SimpleTask.cpp View file @ b33e2d5
// 1 1 //
// Created by ronal on 2/25/2023. 2 2 // Created by ronal on 2/25/2023.
// 3 3 // Problem Link Description
4 // http://codeforces.com/contest/558/problem/E
4 5
#include <bits/stdc++.h> 5 6 #include <bits/stdc++.h>
using namespace std; 6 7 using namespace std;
7 8
int Posicion(int queries, vector<tuple<int, int, int>>& VT){ 8 9 int Posicion(int queries, vector<tuple<int, int, int>>& VT){
int first, last, type, posicion; 9 10 int first, last, type, posicion;
int sum_diff_max = 0; 10 11 int sum_diff_max = 0;
int sum_diff_currenty = 0; 11 12 int sum_diff_currenty = 0;
12 13
for(int i = 0; i < queries; i++){ 13 14 for(int i = 0; i < queries; i++){
cin >> first >> last >> type; 14 15 cin >> first >> last >> type;
if(i == 0) { 15 16 if(i == 0) {
sum_diff_max = last - first; 16 17 sum_diff_max = last - first;
posicion = i; 17 18 posicion = i;
}else{ 18 19 }else{
sum_diff_currenty = last - first; 19 20 sum_diff_currenty = last - first;
if(sum_diff_max < sum_diff_currenty){ 20 21 if(sum_diff_max < sum_diff_currenty){
sum_diff_max = sum_diff_currenty; 21 22 sum_diff_max = sum_diff_currenty;
sum_diff_currenty = 0; 22 23 sum_diff_currenty = 0;
posicion = i; 23 24 posicion = i;
} 24 25 }
} 25 26 }
VT.emplace_back(first, last, type); 26 27 VT.emplace_back(first, last, type);
} 27 28 }
return posicion; 28 29 return posicion;
} 29 30 }
int main(){ 30 31 int main(){
ios_base::sync_with_stdio(false); 31 32 ios_base::sync_with_stdio(false);
cin.tie(NULL); 32 33 cin.tie(NULL);
string S; 33 34 string S;
int size, queries; 34 35 int size, queries;
vector<tuple<int, int, int>> VT; 35 36 vector<tuple<int, int, int>> VT;
cin >> size >> queries; 36 37 cin >> size >> queries;
cin.ignore(); 37 38 cin.ignore();
getline(cin, S); 38 39 getline(cin, S);
39 40
int p = Posicion(queries, VT); 40 41 int p = Posicion(queries, VT);
for(int i = p; i < VT.size(); i++) { 41 42 for(int i = p; i < VT.size(); i++) {
if ( get<2>(VT[i]) == 1) { 42 43 if ( get<2>(VT[i]) == 1) {
sort(S.begin() + get<0>(VT[i]) - 1, S.begin() + get<1>(VT[i])); 43 44 sort(S.begin() + get<0>(VT[i]) - 1, S.begin() + get<1>(VT[i]));
} else if (get<2>(VT[i]) == 0) { 44 45 } else if (get<2>(VT[i]) == 0) {
sort(S.begin() + get<0>(VT[i]) - 1, S.begin() + get<1>(VT[i]), greater<>()); 45 46 sort(S.begin() + get<0>(VT[i]) - 1, S.begin() + get<1>(VT[i]), greater<>());
} 46 47 }
} 47 48 }
// for(const auto & i : S){ 48 49 // for(const auto & i : S){
// cout << i; 49 50 // cout << i;
// } 50 51 // }
SearchingSortingandBasicDataStructures/Unordered_Set/Duplicates.cpp View file @ b33e2d5
File was created 1 //
2 // Created by ronal on 2/26/2023.
3 // Problem Link Description
4 // https://leetcode.com/problems/find-all-duplicates-in-an-array/
5
6 #include <bits/stdc++.h>
7
8 using namespace std;
9 class Solution {
10 public:
11 vector<int> findDuplicates(vector<int>& nums) {
12 vector<int> duplicates;
13 unordered_set<int> inSet;
14 unordered_set<int> duplicatesSet;
15
16 for(auto value : nums){
17 if(inSet.find(value) == inSet.end()){
18 inSet.insert(value);
19 }else{
20 duplicatesSet.insert(value);
21 }
22 }
23
24 for(auto value : duplicatesSet){
25 duplicates.push_back(value);
26 }
27 return duplicates;
28 }
29 };
30
31
32 int main(){
33 Solution solution;
34 vector<int> arr = {4,3,2,7,8,2,3,1};
35 vector<int> duplicates = solution.findDuplicates(arr);