Link đề bài: BCMARA.
Vì bài này rất cơ bản nhưng nhiều bạn chưa làm được, nên mình làm bài hướng dẫn này.
Bài này các bạn đọc dữ liệu vào và lưu vào mảng với đơn vị là giây, tức là đọc vào cả giờ phút giây sau đó đổi về giây để tiện lưu trữ và so sánh.
Sau đó sắp xếp tăng dần và in ra, có thể các bạn tự viết hàm sort hoặc sử dụng hàm sort (quick sort, nhanh hơn selection sort mà chúng ta hay dùng rất nhiều).
Nói qua về hàm sort
Cách sử dụng hàm sort, trước tiên cần include thư viện<algorithm>
, sau đó gọisort(A,A+n)
với A là mảng của bạn, n là số phần tử. Đây là cách sort trên mảng, với các kiểu dữ liệu khác như vector, thì chúng ta sẽ sử dụng iterator.
Sau khi sắp xếp các kết quả theo thứ tự tăng dần, việc cần làm là in chúng ra, nhưng không phải theo đơn vị giây, mà cần phải chuyển thành dạng "giờ phút giây". Cách chuyển cũng không khó lắm, các bạn có thể tham khảo cách chuyển trong code mình.
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
int a[5005], h,m,s,n;
cin >> n;
for (int i=0;i<n;i++) {
cin >> h >> m >> s;
a[i] = (h*60+m)*60+s;
}
sort(a, a+n);
for (int i=0;i<n;i++) {
cout << a[i]/3600 << ' ' << (a[i]/60)%60 << ' ' << a[i]%60 << '\n';
}
}