练 习 题

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int p(int a[], int l, int r) {
	int v = a[r];
	int i = l - 1;
	for (int j = l; j < r; j++) {
		if (a[j] >= v) {
			i++;
			swap(a[i], a[j]);
		}
	}
	swap(a[i+1], a[r]);
	return i + 1;
}
int fi(int a[], int l, int r, int k) {
	if (l == r) return a[l];
	int s = p(a, l, r);
	int b = s - l + 1;
	if (b == k) return a[s];
	else if (b > k) return fi(a, l, s-1, k);
	else return fi(a, s+1, r, k-b);
}

int main() {
	int n, k;
	cin >> n >> k;
	int a[100000];
	for (int i = 0; i < n; i++) cin >> a[i];
	cout << fi(a, 0, n-1, k) << endl;
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>

using namespace std;

int main() {
	int n;
	cin >> n;
	
	int s[1000], e[1000];
	for (int i = 0; i < n; ++i) {
		cin >> s[i] >> e[i];
	}
	
	for (int i = 0; i < n - 1; ++i) {
		for (int j = 0; j < n - i - 1; ++j) {
			if (s[j] > s[j + 1]) {
				swap(s[j], s[j + 1]);
				swap(e[j], e[j + 1]);
			}
		}
	}
	int ms = s[0], me = e[0];
	bool f = true;
	for (int i = 1; i < n; ++i) {
		if (s[i] <= me) {
			me = max(me, e[i]);
		} else {
			f = false;
			break;
		}
	}
	if (f==true) {
		cout << ms << " " << me << endl;
	} else {
		cout << "no" << endl;
	}
	return 0;
}
相关推荐
Prince-Peng8 小时前
技术架构系列 - 详解Redis
数据结构·数据库·redis·分布式·缓存·中间件·架构
zhuqiyua9 小时前
第一次课程家庭作业
c++
只是懒得想了9 小时前
C++实现密码破解工具:从MD5暴力破解到现代哈希安全实践
c++·算法·安全·哈希算法
码农水水9 小时前
得物Java面试被问:消息队列的死信队列和重试机制
java·开发语言·jvm·数据结构·机器学习·面试·职场和发展
m0_736919109 小时前
模板编译期图算法
开发语言·c++·算法
玖釉-9 小时前
深入浅出:渲染管线中的抗锯齿技术全景解析
c++·windows·图形渲染
【心态好不摆烂】9 小时前
C++入门基础:从 “这是啥?” 到 “好像有点懂了”
开发语言·c++
dyyx1119 小时前
基于C++的操作系统开发
开发语言·c++·算法
AutumnorLiuu9 小时前
C++并发编程学习(一)——线程基础
开发语言·c++·学习
m0_736919109 小时前
C++安全编程指南
开发语言·c++·算法