Commit 97a891d535f36544791d538ca7eeadff4c00a55d

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

Update SimpleTask.cpp

Showing 1 changed file with 2 additions and 1 deletions Inline Diff

SearchingSortingandBasicDataStructures/InbuiltSorting/Problem5/SimpleTask.cpp View file @ 97a891d
// 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 // }