社区讨论

求解c语言80分

P1007独木桥参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@m3458e53
此快照首次捕获于
2024/11/05 15:43
去年
此快照最后确认于
2025/11/04 15:18
4 个月前
查看原帖
C
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <ctype.h>
int max(int x, int y){
    if (x > y) {
        return x;
    } else {
        return y;
    }
}

int min(int x, int y){
    if (x < y) {
        return x;
    } else {
        return y;
    }
}

int main() {
    int len = 0;
    scanf("%d", &len);
    int N;
    scanf("%d", &N);
    int pp[N];
    for (int i = 0; i < N; i++){
        scanf("%d", &pp[i]);
       
    }
    if(N == 0){
        printf("0 0");
        return 0;
    }
    if(len == 1){
        printf("1 1");
        return 0;
    }
    for(int i = 0; i < N; i++){
        for(int j = 0; j < N-i-1; j++){
            if(pp[j] > pp[j+1]){
                // 交换元素
                int temp = pp[j];
                pp[j] = pp[j+1];
                pp[j+1] = temp;
            }
        }
    }
    int min_time = 0;
    int max_time = 0;
    for (int i=1;i<=N; i++){
        min_time=max(min(pp[i],len+1-pp[i]),min_time);
    }
    max_time=max(len+1-pp[0],pp[N-1]);
    printf("%d %d", min_time, max_time);
    return 0;
}



回复

3 条回复,欢迎继续交流。

正在加载回复...