Advertisement
EWTD

Untitled

Oct 23rd, 2020
2,178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.47 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <math.h>
  3. long permutations(long n, long k){
  4.         long result = 1;
  5.         for (int i = 0; i < k; ++i){
  6.                 result *= n-i;
  7.         }
  8.         return result;
  9. }
  10. int main(){
  11.         int n, k, x;
  12.         scanf("%d %d %d", &n, &k, &x);
  13.         long result = 0;
  14.         long value;
  15.         if(x == 0){
  16.             while(1 == scanf("%ld",&value));
  17.             result = value;
  18.         }else if (x == 1){
  19.             if (k == 0){
  20.                 while(1 == scanf("%ld", &value)){
  21.                     result += value;
  22.                 }
  23.             }else{
  24.                 int index = 0;
  25.                 while(1 == scanf("%ld",&value)){
  26.                     result += value*permutations(n-index,k);
  27.                     index++;
  28.                 }
  29.             }
  30.         }else if (x == -1){
  31.             if(k == 0){
  32.                 short index = (n-k) % 2 ? -1 : 1;
  33.                 while(1 == scanf("%ld",&value)){
  34.                     result += index*value;
  35.                     index *= -1;
  36.                 }
  37.             }else{
  38.                 short flag = (n-k) % 2 ? -1 : 1;
  39.                 int index = 0;
  40.                 while(1 == scanf("%ld",&value)){
  41.                     result += flag*value*permutations(n-index,k);
  42.                     flag *= -1;
  43.                     index++;
  44.                 }
  45.             }
  46.         }else{
  47.             int index = 0;
  48.             while(index <= (n-k) && 1 == scanf("%ld",&value)){
  49.                 result += value*permutations(n-index,k);
  50.                 if(index != (n-k)){
  51.                     result *= x;
  52.                 }
  53.                 index++;
  54.             }
  55.         }
  56.         printf("%ld\n", result);
  57.     return 0;
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement