Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.73 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. enum
  4. {
  5.     BUF_SIZE = 1024,
  6.     TABLE_OFFSET = 22,
  7.     TABLES_COUNT = 1024,
  8.     TABLE_SIZE = 4096
  9. };
  10.  
  11. int
  12. main(void)
  13. {
  14.     char buf[BUF_SIZE];
  15.     int tables[TABLES_COUNT] = {0};
  16.     int i;
  17.     long long int sum = 0;
  18.     unsigned int from, to;
  19.     while (fgets(buf, BUF_SIZE, stdin) > 0) {
  20.         sscanf(buf, "%x-%x", &from, &to);
  21.         from >>= TABLE_OFFSET;
  22.         to--;
  23.         to >>= TABLE_OFFSET;
  24.         for (i = from; i <= to; i++) {
  25.             tables[i] = 1;
  26.         }
  27.     }
  28.     for (i = 0; i < TABLES_COUNT; i++) {
  29.         if (tables[i]) {
  30.             sum += TABLE_SIZE;
  31.         }
  32.     }
  33.     if (sum > 0) {
  34.         sum += TABLE_SIZE;
  35.     }
  36.     printf("%lld\n", sum);
  37.     return 0;
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement