wojiaocbj

Untitled

Apr 19th, 2022
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.56 KB | None | 0 0
  1. /*
  2.  Author: 曹北健
  3.  Result: AC Submission_id: 4350793
  4.  Created at: Tue Apr 19 2022 22:28:40 GMT+0800 (China Standard Time)
  5.  Problem_id: 5556   Time: 5 Memory: 1740
  6. */
  7.  
  8. #include <stdio.h>
  9. #pragma warning(disable:4996)
  10. long long A_re[16][16] = { 0 }, A_im[16][16] = { 0 };
  11. long long B_re[16][16] = { 0 }, B_im[16][16] = { 0 };
  12. int main(){
  13.     int n, i, j, k;
  14.     char input[32] = { 0 };
  15.     scanf("%d", &n);
  16.     for(i = 0; i < n; i++){
  17.         for(j = 0; j < n; j++){
  18.             scanf("%s", input);
  19.             sscanf(input, "%lld%lld", &A_re[i][j], &A_im[i][j]);
  20.         }
  21.     }
  22.     for(i = 0; i < n; i++){
  23.         for(j = 0; j < n; j++){
  24.             scanf("%s", input);
  25.             sscanf(input, "%lld%lld", &B_re[i][j], &B_im[i][j]);
  26.         }
  27.     }
  28.     for(i = 0; i < n; i++){
  29.         for(j = 0; j < n; j++){
  30.             long long re0 = 0, im0 = 0, tmpre, tmpim;
  31.             for(k = 0; k < n; k++){
  32.                 //A[i][k]*B[k][j]
  33.                 tmpre = A_re[i][k] * B_re[k][j] - A_im[i][k] * B_im[k][j];
  34.                 tmpim = A_re[i][k] * B_im[k][j] +A_im[i][k] * B_re[k][j];
  35.                 re0 += tmpre;
  36.                 im0 += tmpim;
  37.             }
  38.             //output
  39.             if(re0 == 0 && im0 == 0){
  40.                 printf("0 ");
  41.             }
  42.             else if(re0 == 0){
  43.                 if(im0 == 1){
  44.                     printf("i ");
  45.                 }
  46.                 else if(im0 == -1){
  47.                     printf("-i ");
  48.                 }
  49.                 else{
  50.                     printf("%lldi ", im0);
  51.                 }
  52.             }
  53.             else if(im0 == 0){
  54.                 printf("%lld ", re0);
  55.             }
  56.             else{
  57.                 printf("%lld", re0);
  58.                 if(im0 == 1){
  59.                     printf("+i ");
  60.                 }
  61.                 else if(im0 == -1){
  62.                     printf("-i ");
  63.                 }
  64.                 else{
  65.                     if(im0 > 0){
  66.                         printf("+");
  67.                     }
  68.                     printf("%lldi ", im0);
  69.                 }
  70.             }
  71.         }
  72.         printf("\n");
  73.     }
  74.     return 0;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment