Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include <stdlib.h>
- struct gd {
- int id;
- int hh;
- int mm;
- char dest[21];
- int delta;
- };
- void words(char *str) {
- int i = 0;
- while (str[i]) {
- str[i] = toupper(str[i]);
- i++;
- }
- }
- void sort(struct gd *arr, int n) {
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n - i - 1; j++) {
- int flag = 1;
- if (arr[j].hh > arr[j + 1].hh)
- flag = 0;
- else if (arr[j].hh == arr[j + 1].hh && arr[j].mm > arr[j + 1].mm)
- flag = 0;
- else if (arr[j].hh == arr[j + 1].hh && arr[j].mm == arr[j + 1].mm &&
- strcmp(arr[j].dest, arr[j + 1].dest) > 0)
- flag = 0;
- else if (arr[j].hh == arr[j + 1].hh && arr[j].mm == arr[j + 1].mm &&
- strcmp(arr[j].dest, arr[j + 1].dest) == 0 && arr[j].id > arr[j + 1].id)
- flag = 0;
- if (!flag) {
- struct gd t = arr[j];
- arr[j] = arr[j + 1];
- arr[j + 1] = t;
- }
- }
- }
- }
- int time(int m1, int h1, int m2, int h2) {
- int sum = (m2 - m1) + (h2 - h1) * 60;
- return sum;
- }
- int main() {
- FILE *fin = fopen("D:/Projects/CLionProjects/Lab_6/input.txt", "rt");
- FILE *fout = fopen("D:/Projects/CLionProjects/Lab_6/output.txt", "wt");
- int k, n;
- fscanf(fin, "%d%d", &k, &n);
- struct gd *arr = (struct gd *) malloc(sizeof(struct gd) * n);
- for (int i = 0; i < n; i++) {
- fscanf(fin, "%d %d:%d %s", &arr[i].id, &arr[i].hh, &arr[i].mm, arr[i].dest);
- words(arr[i].dest);
- }
- sort(arr, n);
- fprintf(fout, "%03d %02d:%02d %s %d\n", arr[0].id, arr[0].hh, arr[0].mm, arr[0].dest, time(0, 0, arr[0].mm, arr[0].hh));
- for (int i = 1; i < k; i++) {
- fprintf(fout, "%03d %02d:%02d %s %d\n", arr[i].id, arr[i].hh, arr[i].mm, arr[i].dest,
- time(arr[i - 1].mm, arr[i - 1].hh, arr[i].mm, arr[i].hh));
- }
- fclose(fin);
- fclose(fout);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement