Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string>
- using namespace std;
- struct Idiot {
- string country;
- string name;
- };
- Idiot arr1[100000];
- Idiot arr[100000];
- void merge_sort(int l, int r){
- if (l == r){
- return;
- }
- int mid = (l + r) / 2;
- merge_sort(l, mid);
- merge_sort(mid + 1, r);
- int i = l;
- int j = mid + 1;
- int k = 0;
- while((i < mid + 1) && (j < r + 1)){
- if (arr[i].country <= arr[j].country){
- arr1[k] = arr[i];
- i++;
- k++;
- }else{
- arr1[k] = arr[j];
- j++;
- k++;
- }
- }
- while (i < mid + 1){
- arr1[k] = arr[i];
- i++;
- k++;
- }
- while(j < r + 1){
- arr1[k] = arr[j];
- j++;
- k++;
- }
- for(int m = 0; m < r - l +1; m++){
- arr[l + m] = arr1[m];
- }
- return;
- }
- int main(){
- ifstream cin("race.in");
- ofstream cout("race.out");
- int n; cin >> n;
- for(int i = 0; i < n; i++) {
- cin >> arr[i].country >> arr[i].name;
- }
- merge_sort(0, n - 1);
- cout << "=== " << arr1[0].country << " ===" << endl << arr1[0].name << endl;
- for (int i = 1; i < n; i++){
- if (arr1[i].country != arr1[i - 1].country){
- cout << "=== " << arr1[i].country << " ===" <<endl;
- }
- cout << arr1[i].name << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement