Advertisement
wojiaocbj

Untitled

Mar 19th, 2023
862
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.46 KB | None | 0 0
  1. /*
  2.  Author: 曹北健(37509)
  3.  Result: AC Submission_id: 5245056
  4.  Created at: Sun Mar 19 2023 17:07:51 GMT+0800 (China Standard Time)
  5.  Problem: 6736  Time: 125   Memory: 2484
  6. */
  7.  
  8. #include <stdio.h>
  9. #include <string.h>
  10. #include <math.h>
  11. int main(){
  12.     int op,a,b,x,p,q;
  13.     printf("%c",op);
  14.     long long n,i,j=0,k,s,sumy=0,sum=0,sumz=0;
  15.     scanf("%d",&op);
  16.     while(op!=(-1)){
  17.         char y[26],z[26];
  18.         j++;
  19.         n=0;
  20.         p=0;
  21.         q=0;
  22.         s=0;
  23.         sumy=0;
  24.         sumz=0;
  25.         sum=0;
  26.         if(op==0){
  27.             scanf("%lld",&n);
  28.             printf("Case %lld:\n",j);
  29.             if(n==0)printf("{a}\n");
  30.             else{
  31.                 printf("{");
  32.                 for(i=0;n>0;i++){
  33.                 s=n%2;
  34.                 if(s==1){
  35.                     printf("%c",i+97);
  36.                     if(n>=2)printf(",");
  37.                 }
  38.                 n=n/2;
  39.             }
  40.             printf("}");
  41.             printf("\n");
  42.             }
  43.         }
  44.         if(op==1){
  45.             scanf("%d %d %d",&a,&b,&x);
  46.             scanf("%s",&y);
  47.             p=strlen(y);
  48.             scanf("%s",&z);
  49.             q=strlen(z);
  50.             printf("Case %lld:\n",j);
  51.             for(i=0;i<p;i++){
  52.                 s=y[i]-97;
  53.                 sumy+=pow(2,s);
  54.             }
  55.             for(i=0;i<q;i++){
  56.                 s=z[i]-97;
  57.                 sumz+=pow(2,s);
  58.             }
  59.             for(s=0;s<26;s++){
  60.                 sum+=pow(2,s);
  61.             }
  62.             if((sumy^sumz)==0&&p==q){
  63.                 printf("Set A is equal to set B!\n");
  64.                 x=6;
  65.             }
  66.             else{
  67.               if((sumy|sumz)==sumy)
  68.                 printf("Set B is the subset of set A!\n");
  69.             else{
  70.               if((sumy|sumz)==sumz){
  71.                 printf("Set A is the subset of set B!\n");
  72.               }else
  73.                 printf("No subset relationship!\n");
  74.         }
  75.     }
  76.     switch(x){
  77.         case 0:printf("The intersection of set A and set B is:");
  78.                s=sumy&sumz;
  79.             if(s==0)printf("Empty set\n");
  80.             else{
  81.             printf("{");
  82.             for(i=0;s>0;i++){
  83.                 k=s%2;
  84.                 if(k==1){
  85.                     printf("%c",i+97);
  86.                     if(s>=2)printf(",");
  87.                 }
  88.                 s=s/2;
  89.             }
  90.             printf("}");
  91.             printf("\n");
  92.         }
  93.                break;
  94.         case 1:printf("The union of set A and set B is:");
  95.                s=sumy|sumz;
  96.             if(s==0)printf("Empty set\n");
  97.             else{
  98.             printf("{");
  99.             for(i=0;s>0;i++){
  100.                 k=s%2;
  101.                 if(k==1){
  102.                     printf("%c",i+97);
  103.                     if(s>=2)printf(",");
  104.                 }
  105.                 s=s/2;
  106.             }
  107.             printf("}");
  108.             printf("\n");
  109.         }
  110.                break;
  111.         case 2:printf("The complement of set A is:");
  112.               s=sum-(sumy&sum);
  113.             if(s==0)printf("Empty set\n");
  114.             else{
  115.             printf("{");
  116.             for(i=0;s>0;i++){
  117.                 k=s%2;
  118.                 if(k==1){
  119.                     printf("%c",i+97);
  120.                     if(s>=2)printf(",");
  121.                 }
  122.                 s=s/2;
  123.             }
  124.             printf("}");
  125.             printf("\n");
  126.         }
  127.                break;
  128.         case 3:printf("The difference of set A and set B is:");
  129.              s=sumy-(sumy&sumz);
  130.             if(s==0)printf("Empty set\n");
  131.             else{
  132.             printf("{");
  133.             for(i=0;s>0;i++){
  134.                 k=s%2;
  135.                 if(k==1){
  136.                     printf("%c",i+97);
  137.                     if(s>=2)printf(",");
  138.                 }
  139.                 s=s/2;
  140.             }
  141.             printf("}");
  142.             printf("\n");
  143.         }
  144.                break;
  145.         case 4:printf("The complement of the intersection of set A and set B is:");
  146.                s=sum-(sumy&sumz);
  147.             if(s==0)printf("Empty set");
  148.             else{
  149.             printf("{");
  150.             for(i=0;s>0;i++){
  151.                 k=s%2;
  152.                 if(k==1){
  153.                     printf("%c",i+97);
  154.                     if(s>=2)printf(",");
  155.                 }
  156.                 s=s/2;
  157.             }
  158.             printf("}");
  159.             printf("\n");
  160.         }
  161.                break;
  162.         case 5:printf("The complement of the union of set A and set B is:");
  163.             s=sum-(sumy|sumz);
  164.             if(s==0)printf("Empty set\n");
  165.             else{
  166.             printf("{");
  167.             for(i=0;s>0;i++){
  168.                 k=s%2;
  169.                 if(k==1){
  170.                     printf("%c",i+97);
  171.                     if(s>=2)printf(",");
  172.                 }
  173.                 s=s/2;
  174.             }
  175.             printf("}");
  176.             printf("\n");
  177.         }
  178.                break;
  179.     }
  180.     }
  181.     scanf("%d",&op);
  182. }
  183.     return 0;
  184. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement