题解:洛谷P12641 上学


蒟蒻第一篇题解,不喜勿喷。
请勿直接复制题解
很简单的一道模拟题

正文开始

首先读入数据,数据很小,不用开long long, 接着循环判断,如果出发时间和路程时间小于等于x,那就可以乘坐,再开个数组和计数器,把可以乘坐的车辆的出发时间加进去。先对数组进行冒泡排序,最后判断,如果排序后数组的第一项是0,输出-1,否则输出第一项

AC Code

#include<bits/stdc++.h> using namespace std; int a[105],b[105],c[105]; int main() { int n,x,num=1; bool flag=false; cin>>n>>x; for(int i=1;i<=n;i++) { cin>>a[i]>>b[i]; } for(int i=1;i<=n;i++) { if(a[i]+b[i]<=x) { c[num]=a[i]; num++; flag=true; } } for(int i=1;i<=n-1;i++) { for(int j=1;j<=n-i;j++) { if(c[j]<c[j+1]) { c[0]=c[j]; c[j]=c[j+1]; c[j+1]=c[0]; } } } if(c[1]==0) { cout<<"-1"; } else { cout<<c[1]; } return 0; }

End

洛谷发布日期为2025-05-28 22:07

原文链接 返回主页