Submission #338505


Source Code Expand

#include <stdio.h>
#include <stdlib.h>
#define  START 0
#define  END   1

int roundtime(int time, int which) {
  int min = time % 100;
  int hour = (time - (min)) / 100;

  int mins = hour * 60 + min; // 単位は分
  int res = min % 5;
  if (res > 0) {
    if (which == START)
      // 直後
      mins = mins - res;
    else
      mins = (5 - res) + mins;
  }
  hour = mins / 60;
  min = mins % 60;
  return hour * 100 + min;
}

void swap(int *a, int *b) {
  int tmp = *a;
  *a = *b;
  *b = tmp;
}

void sort(int *start, int *end, int size) {
  int i, j;
  for (i = 0; i < size - 1; i++) {
    for (j = i + 1; j < size; j++) {
      if (start[i] > start[j]) {
        swap(&start[i], &start[j]);
        swap(&end[i], &end[j]);
      }
    }
  }
}

int is_index(int time) {
  int min = time % 100;
  int hour = (time - (min)) / 100;
  return hour * 12 + min / 5;
}

int gettime(int index) {
  int min = 5 * index;
  int h = min / 60;
  int m = min % 60;
  return h * 100 + m;
}
int main(void) {
  int n;
  scanf("%d", &n);
  int s[n], e[n];
  int i;
  for (i = 0; i < n; i++) {
    scanf("%d-%d", &s[i], &e[i]);
    s[i] = roundtime(s[i], START);
    e[i] = roundtime(e[i], END);
    //    printf("Rounded: %d-%d\n", s[i], e[i]);
  }

  sort(s, e, n);

  const int size = 12 * 24 + 1;
  int table[size];

  for (i = 0; i < size; i++)
    table[i] = 0;
  for (i = 0; i < n; i++) {
    table[is_index(s[i])]++;
    table[is_index(e[i])]--;
  }
  // 足した値を計算
  for (i = 1; i < size; i++) {
    table[i] += table[i-1];
  }
  for (i = 0; i < size; i++) {
    if (table[i] >= 1) {
      printf("%04d-", gettime(i));   // 始点
      int j;
      for (j = i + 1; j < size; j++) {
        if (table[j] <= 0) {
          printf("%04d\n", gettime(j));
          i = j;
          break;
        }
      }
    }
  }
  return EXIT_SUCCESS;
}

Submission Info

Submission Time
Task D - 感雨時刻の整理
User jtwp470
Language C (GCC 4.6.4)
Score 100
Code Size 1942 Byte
Status AC
Exec Time 604 ms
Memory 1076 KB

Compile Error

./Main.c: In function ‘main’:
./Main.c:56:8: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
./Main.c:60:10: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]

Judge Result

Set Name all
Score / Max Score 100 / 100
Status
AC × 48
Set Name Test Cases
all 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, cho_cho_chokudai.txt, chokudai_ga_cho.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 21 ms 700 KB
00_sample_02.txt AC 21 ms 708 KB
00_sample_03.txt AC 23 ms 712 KB
cho_cho_chokudai.txt AC 470 ms 936 KB
chokudai_ga_cho.txt AC 604 ms 1076 KB
test_01.txt AC 21 ms 800 KB
test_02.txt AC 23 ms 804 KB
test_03.txt AC 22 ms 676 KB
test_04.txt AC 23 ms 788 KB
test_05.txt AC 23 ms 676 KB
test_06.txt AC 22 ms 800 KB
test_07.txt AC 22 ms 704 KB
test_08.txt AC 23 ms 796 KB
test_09.txt AC 22 ms 700 KB
test_10.txt AC 23 ms 796 KB
test_11.txt AC 23 ms 652 KB
test_12.txt AC 23 ms 804 KB
test_13.txt AC 22 ms 708 KB
test_14.txt AC 22 ms 704 KB
test_15.txt AC 23 ms 800 KB
test_16.txt AC 22 ms 712 KB
test_17.txt AC 22 ms 804 KB
test_18.txt AC 22 ms 700 KB
test_19.txt AC 22 ms 804 KB
test_20.txt AC 23 ms 676 KB
test_21.txt AC 560 ms 932 KB
test_22.txt AC 531 ms 864 KB
test_23.txt AC 555 ms 920 KB
test_24.txt AC 532 ms 932 KB
test_25.txt AC 545 ms 928 KB
test_26.txt AC 573 ms 936 KB
test_27.txt AC 474 ms 936 KB
test_28.txt AC 530 ms 928 KB
test_29.txt AC 23 ms 804 KB
test_30.txt AC 21 ms 804 KB
test_31.txt AC 44 ms 676 KB
test_32.txt AC 21 ms 704 KB
test_33.txt AC 296 ms 920 KB
test_34.txt AC 26 ms 796 KB
test_35.txt AC 25 ms 700 KB
test_36.txt AC 564 ms 1060 KB
test_37.txt AC 543 ms 932 KB
test_38.txt AC 569 ms 888 KB
test_39.txt AC 520 ms 936 KB
test_40.txt AC 527 ms 936 KB
test_41.txt AC 473 ms 936 KB
test_42.txt AC 515 ms 924 KB
test_43.txt AC 513 ms 928 KB