6104
#include<iostream>
#include<string.h>
#include<string>
#include<stdio.h>
#define CRT_SECURE_NO_WARNINGS
using namespace std;
int number[101];
int findMax(int left, int right);
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
cin >> number[i];
}
int left = 0;
int right = n - 1;
int ans = findMax(left, right);
cout << ans << endl;
return 0;
}
int findMax(int left, int right) {
if (left >= right || left == right - 1) {
return number[left] > number[right] ? number[left] : number[right];
}
int mid = (left + right) / 2;
int max1 = findMax(left, mid);
int max2 = findMax(mid + 1, right);
return max1 > max2 ? max1 : max2;
}
6103
#include<iostream>
#include<string.h>
#include<string>
#include<stdio.h>
#define CRT_SECURE_NO_WARNINGS
using namespace std;
int number[1000];
void mergeall(int left, int mid, int right) {
int array[1000];
int i = left;
int j = mid + 1;
for (int k = left; k <= right; k++) {
array[k] = number[k];
}
for (int k = left; k <= right; k++) {
if (i > mid) { number[k] = array[j++]; }
else if (j > right) { number[k] = array[i++]; }
else if (array[i] < number[j]) { number[k] = array[i++]; }
else { number[k] = array[j++]; }
}
}
void merge(int left, int right) {
if (left >= right) return;
else {
int mid = (left + right) / 2;
merge(left, mid);
merge(mid + 1, right);
mergeall(left, mid, right);
}
}
void print(int k) {
for (int i = 0; i < k; i++) {
cout << number[i] << " ";
}
}
int main() {
int k;
cin >> k;
for (int i = 0; i < k; i++) {
cin >> number[i];
}
merge(0, k - 1);
print(k);
return 0;
}
6102
#include<iostream>
#include<string.h>
#include<string>
#include<stdio.h>
#define CRT_SECURE_NO_WARNINGS
using namespace std;
int def[505][505];
int t = 0;
void qpfg(int a, int b, int aa, int bb, int length) {
if (length == 1) return;
else {
t++;
int temp = t;
int l = length / 2;
if (aa < a + l && bb < b + l) {
qpfg(a, b, aa, bb, l);
}
else {
def[a + l - 1][b + l - 1] = temp;
qpfg(a, b, a + l - 1, b + l - 1, l);
}
if (aa < a + l && bb >= b + l) {
qpfg(a, b + l, aa, bb, l);
}
else {
def[a + l - 1][b + l] = temp;
qpfg(a, b + l, a + l - 1, b + l, l);
}
if (aa >= a + l && bb < b + l) {
qpfg(a + l, b, aa, bb, l);
}
else {
def[a + l][b + l - 1] = temp;
qpfg(a + l, b, a + l, b + l - 1, l);
}
if (aa >= a + l && bb >= b + l) {
qpfg(a + l, b + l, aa, bb, l);
}
else {
def[a + l][b + l] = temp;
qpfg(a + l, b + l, a + l, b + l, l);
}
}
}
void print(int k) {
for (int i = 1; i <= k; i++) {
for (int j = 1; j <= k; j++) {
cout.width(2);
cout << def[i][j] << " ";
}
cout << endl;
}
}
int main() {
int length;
cin >> length;
int aa, bb;
cin >> aa >> bb;
qpfg(1, 1, aa, bb, length);
print(length);
return 0;
}