// 乌龟与兔子进行赛跑,跑场是一个矩型跑道,跑道边可以随地进行休息。乌龟每分钟可以前进3米,
// 兔子每分钟前进9米;兔子嫌乌龟跑得慢,觉得肯定能跑赢乌龟,于是,每跑10分钟回头看一下乌龟,
// 若发现自己超过乌龟,就在路边休息,每次休息30分钟,否则继续跑10分钟;而乌龟非常努力,
// 一直跑,不休息。假定乌龟与兔子在同一起点同一时刻开始起跑,请问T分钟后乌龟和兔子谁跑得快?
#include <iostream>
using namespace std;
int main() {
    int T;
    cin >> T;
    int turtle = 0;  // 乌龟跑过的距离
    int rabbit = 0;  // 兔子跑过的距离
    int rTime = 0;  // 兔子剩余休息时间
    bool rest = false;  // 兔子是否在休息
    for (int minute = 1; minute <= T; minute++) {// 乌龟奔跑情况
        turtle += 3;
        if (rest) {//若兔子在休息
            rTime --;
            if (rTime  == 0) {
                rest = false;
            }
        } else {//若兔子在跑,它每分钟跑9米
            rabbit += 9;
            if (minute % 10 == 0 && rabbit > turtle) {// 每10分钟检查一次
                rest = true;
                rTime  = 30;
            }
        }
    }
    // 输出
    if (turtle > rabbit) {
        cout << "@_@ " << turtle << endl;
    } else if (rabbit > turtle) {
        cout << "^_^ " << rabbit << endl;
    } else {
        cout << "-_- " << turtle << endl; 
    }
    return 0;
}
// 天梯赛是个善良的比赛。善良的命题组希望将题目难度控制在一个范围内,
// 使得每个参赛的学生都有能做出来的题目,并且最厉害的学生也要非常努力才有可能得到高分。
// 于是命题组首先将编程能力划分成了 10^6个等级(太疯狂了,这是假的),
// 然后调查了每个参赛学生的编程能力。现在请你写个程序找出所有参赛学生的最小和最大
// 能力值,给命题组作为出题的参考。
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    int N;
    cin >> N;
    vector<int> stu(N);
    for (int i = 0; i < N; i++) {
        cin >> stu[i];
    }
    if (N == 0) {//若输入为空,直接返回
        return 0;
    }
    sort(stu.begin(), stu.end());//将数组排序
    int min_stu = stu[0];// 最小能力值及其人数
    int min_count = 1;
    for (int i = 1; i < N; i++) {
        if (stu[i] == min_stu) {
            min_count++;
        } else {
            break;
        }
    }
    int max_stu = stu[N - 1];// 最大能力值及其人数
    int max_count = 1;
    for (int i = N - 2; i >= 0; i--) {
        if (stu[i] == max_stu) {
            max_count++;
        } else {
            break;
        }
    }
    // 输出结果
    cout << min_stu << " " << min_count << endl;
    cout << max_stu << " " << max_count << endl;
    return 0;
}
//给定一个整数m(50<m<20000),找出小于m的最大的10个素数。

#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
bool isPrime(int n);//声明函数
int main() {
    int m;
    cin >> m;//输入查找素数的范围
    int count = 0;  // 记录已找到的素数个数
    int primes[10]; // 存储找到的10个素数
    for (int num = m - 1; num >= 2 && count < 10; num--) {//循环寻找范围以内的素数
        if (isPrime(num)) {
            primes[count] = num;
            count++;
        }
    }
    for (int i = 0; i < count; i++) {//输出结果
        cout << setw(6) << primes[i];
    }
    cout << endl;
    
    return 0;
}
bool isPrime(int n) {//判断素数
    if (n <= 1) return false;
    if (n == 2) return true;
    if (n % 2 == 0) return false;
    int limit = sqrt(n);
    for (int i = 3; i <= limit; i += 2) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}