From LI2 Contests Group
Contest 09. Prefix sums and countings
C. Rectangle Sum
Problem: C. Rectangle Sum
Solution: GitHub Code
cpp
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n, m, k;
cin >> n >> m >> k;
vector < vector < int > > dp(n+1, vector < int > (m+1, 0));
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
cin >> dp[i][j];
}
}
for(int i=1; i<=n; i++){
for(int j=1; j<=m; j++){
dp[i][j] += dp[i-1][j] + dp[i][j-1] - dp[i-1][j-1];
}
}
// for(int i=0; i<=n; i++){
// for(int j=0; j<=m; j++){
// cout << dp[i][j] << ' ';
// }
// cout << endl;
// }
int x1, y1, x2 ,y2;
for(int i=0; i<k; i++){
cin >> x1 >> y1 >> x2 >> y2;
cout << dp[x2][y2] - dp[x2][y1-1] - dp[x1-1][y2] + dp[x1-1][y1-1] << endl;
}
}F. Counting Sort
Problem: F. Counting Sort
Solution: GitHub Code
cpp
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector < int > arr;
int n;
while(cin >> n){
arr.push_back(n);
}
n = arr.size();
vector < int > brr(101, 0);
for(int i=0; i<n; i++){
brr[arr[i]]++;
}
for(int i=0; i<=100; i++){
for(int j=0; j<brr[i]; j++){
cout << i << ' ';
}
}
}G. Haybale Stacking
Problem: G. Haybale Stacking
Solution: GitHub Code
cpp
#include <iostream>
#include <vector>
using namespace std;
int main(){
int n, k;
cin >> n >> k;
vector < int > arr(n, 0);
int a, b;
for(int i=0; i<k; i++){
cin >> a >> b;
arr[a-1]++;
arr[b]--;
}
for(int i=1; i<n; i++){
arr[i] += arr[i-1];
}
for(int i=0; i<n; i++){
cout << arr[i] << ' ';
}
}Contest 10. Sorting
C. Sorting halves
Problem: C. Sorting halves
Solution: GitHub Code
cpp
#include <bits/stdc++.h>
// #include <iostream>
// #include <vector>
// #include <algorithm>
using namespace std;
int main(){
ifstream fcin("input.txt");
ofstream fcout("output.txt");
int n;
// cin >> n;
fcin >> n;
vector < int > arr(n);
for(int i=0; i<n; i++){
// cin >> arr[i];
fcin >> arr[i];
}
sort(arr.begin(), arr.begin() + n/2);
// sort(arr.begin() + n/2, arr.end(), greater<int>());
sort(arr.begin() + n/2, arr.end(), [](int a, int b){
return a > b;
});
for(int i=0; i<n; i++){
// cout << arr[i] << ' ';
fcout << arr[i] << ' ';
}
}D. Merge Lists
Problem: D. Merge Lists
Solution: GitHub Code
cpp
#include <bits/stdc++.h>
// #include <iostream>
// #include <vector>
// #include <sstream>
using namespace std;
int main(){
ifstream fcin("input.txt");
ofstream fcout("output.txt");
int n;
string line;
vector < int > arr;
vector < int > brr;
getline(fcin, line);
stringstream ss(line);
while(ss >> n){
arr.push_back(n);
}
getline(fcin, line);
ss.clear();
ss.str(line);
while(ss >> n){
brr.push_back(n);
}
// for(int i: arr){
// cout << i << ' ';
// }
// cout << endl;
// for(int i: brr){
// cout << i << ' ';
// }
// cout << endl;
vector < int > crr;
int n1 = arr.size();
int n2 = brr.size();
int j = 0;
for(int i=0; i<n1; i++){
while(arr[i]>brr[j] and j<n2){
crr.push_back(brr[j]);
j++;
}
crr.push_back(arr[i]);
}
while(j<n2){
crr.push_back(brr[j]);
j++;
}
for(int i: crr){
fcout << i << ' ';
}
}F. Sorting. Stone method.
Problem: F. Sorting. Stone method.
Solution: GitHub Code
cpp
#include <bits/stdc++.h>
// #include <iostream>
// #include <vector>
using namespace std;
int main(){
ifstream fcin("input.txt");
ofstream fcout("output.txt");
int n;
fcin >> n;
vector < int > arr(n);
for(int i=0; i<n; i++){
fcin >> arr[i];
}
bool det = true;
for(int i=n-1; i>0; i--){
for(int j=0; j<i; j++){
if(arr[j]>arr[j+1]){
swap(arr[j], arr[j+1]);
det = false;
for(int k: arr){
fcout << k << ' ';
}
fcout << endl;
}
}
}
if(det){
fcout << 0;
}
}K. Olympiad Results
Problem: K. Olympiad Results
Solution: GitHub Code
cpp
#include <bits/stdc++.h>
// #include <iostream>
// #include <vector>
using namespace std;
int main(){
ifstream fcin("input.txt");
ofstream fcout("output.txt");
int n;
fcin >> n;
int a, b;
vector < pair < int, int > > arr(n);
for(int i=0; i<n; i++){
fcin >> a >> b;
arr[i] = make_pair(a, b);
}
sort(arr.begin(), arr.end(), [](pair < int, int > p1, pair < int, int > p2){
if(p1.second == p2.second){
return p1.first < p2.first;
}else{
return p1.second > p2.second;
}
});
for(auto i: arr){
fcout << i.first << ' ' << i.second << endl;
}
}