Vanilla_Fury

osisp_laba_1

Feb 26th, 2022
862
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.48 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define DEBUG
  5.  
  6. int countDays(int year, int month, int day) {
  7.     return year * 365 + month * 30 + day;
  8. }
  9.  
  10. int getMiddleDigits(long long int num) {
  11.     char sNum[25];
  12.     sprintf(sNum, "%lld", num);
  13.    
  14.     int startPos = (int)(strlen(sNum) / 2) - 1;
  15.     char sAns[4];
  16.     sprintf(sAns, "%c%c%c", sNum[startPos], sNum[startPos + 1], sNum[startPos + 2]);
  17.     int ans;
  18.     sscanf(sAns, "%d", &ans);
  19.     return ans;
  20. }
  21.  
  22. int main(int argc, unsigned char* argv[]) {
  23.     int k;
  24.     sscanf(argv[4], "%d", &k);
  25.    
  26.     #ifdef DEBUG
  27.         printf("k = %d\n", k);
  28.     #endif
  29.  
  30.     unsigned long long sum = 0;
  31.     for (int i = 1; i < 4; i++)
  32.     {
  33.         for (int j = 0; j < strlen(argv[i]); j += 2)
  34.         {
  35.             unsigned long long temp = (argv[i][j] << 8) + argv[i][j + 1];
  36.             //printf("%llx\n", temp);
  37.             sum += temp * temp;
  38.         }
  39.     }
  40.  
  41.  
  42.     #ifdef DEBUG
  43.         printf("sum = %lld\n", sum);
  44.     #endif
  45.  
  46.     int day, month, year;
  47.     sscanf(argv[5], "%d.%d.%d", &day, &month, &year);
  48.  
  49.     int days = countDays(year, month, day);
  50.  
  51.     #ifdef DEBUG
  52.         printf("days = %d\n", days);
  53.     #endif
  54.  
  55.     long long int s = (long long)sum * (long long)days;
  56.  
  57.     #ifdef DEBUG
  58.         printf("s = %lld\n", s);
  59.     #endif
  60.  
  61.     int s1 = getMiddleDigits(s);
  62.  
  63.     #ifdef DEBUG
  64.         printf("s1 = %d\n", s1);
  65.     #endif
  66.  
  67.     int n = s1 % k + 1;
  68.  
  69.     printf("Answer: %d\n", n);
  70.  
  71.     return 0;
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment