Commit 97a891d535f36544791d538ca7eeadff4c00a55d
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 | // } |