Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Author: 曹北健(37509)
- Result: AC Submission_id: 5245056
- Created at: Sun Mar 19 2023 17:07:51 GMT+0800 (China Standard Time)
- Problem: 6736 Time: 125 Memory: 2484
- */
- #include <stdio.h>
- #include <string.h>
- #include <math.h>
- int main(){
- int op,a,b,x,p,q;
- printf("%c",op);
- long long n,i,j=0,k,s,sumy=0,sum=0,sumz=0;
- scanf("%d",&op);
- while(op!=(-1)){
- char y[26],z[26];
- j++;
- n=0;
- p=0;
- q=0;
- s=0;
- sumy=0;
- sumz=0;
- sum=0;
- if(op==0){
- scanf("%lld",&n);
- printf("Case %lld:\n",j);
- if(n==0)printf("{a}\n");
- else{
- printf("{");
- for(i=0;n>0;i++){
- s=n%2;
- if(s==1){
- printf("%c",i+97);
- if(n>=2)printf(",");
- }
- n=n/2;
- }
- printf("}");
- printf("\n");
- }
- }
- if(op==1){
- scanf("%d %d %d",&a,&b,&x);
- scanf("%s",&y);
- p=strlen(y);
- scanf("%s",&z);
- q=strlen(z);
- printf("Case %lld:\n",j);
- for(i=0;i<p;i++){
- s=y[i]-97;
- sumy+=pow(2,s);
- }
- for(i=0;i<q;i++){
- s=z[i]-97;
- sumz+=pow(2,s);
- }
- for(s=0;s<26;s++){
- sum+=pow(2,s);
- }
- if((sumy^sumz)==0&&p==q){
- printf("Set A is equal to set B!\n");
- x=6;
- }
- else{
- if((sumy|sumz)==sumy)
- printf("Set B is the subset of set A!\n");
- else{
- if((sumy|sumz)==sumz){
- printf("Set A is the subset of set B!\n");
- }else
- printf("No subset relationship!\n");
- }
- }
- switch(x){
- case 0:printf("The intersection of set A and set B is:");
- s=sumy&sumz;
- if(s==0)printf("Empty set\n");
- else{
- printf("{");
- for(i=0;s>0;i++){
- k=s%2;
- if(k==1){
- printf("%c",i+97);
- if(s>=2)printf(",");
- }
- s=s/2;
- }
- printf("}");
- printf("\n");
- }
- break;
- case 1:printf("The union of set A and set B is:");
- s=sumy|sumz;
- if(s==0)printf("Empty set\n");
- else{
- printf("{");
- for(i=0;s>0;i++){
- k=s%2;
- if(k==1){
- printf("%c",i+97);
- if(s>=2)printf(",");
- }
- s=s/2;
- }
- printf("}");
- printf("\n");
- }
- break;
- case 2:printf("The complement of set A is:");
- s=sum-(sumy&sum);
- if(s==0)printf("Empty set\n");
- else{
- printf("{");
- for(i=0;s>0;i++){
- k=s%2;
- if(k==1){
- printf("%c",i+97);
- if(s>=2)printf(",");
- }
- s=s/2;
- }
- printf("}");
- printf("\n");
- }
- break;
- case 3:printf("The difference of set A and set B is:");
- s=sumy-(sumy&sumz);
- if(s==0)printf("Empty set\n");
- else{
- printf("{");
- for(i=0;s>0;i++){
- k=s%2;
- if(k==1){
- printf("%c",i+97);
- if(s>=2)printf(",");
- }
- s=s/2;
- }
- printf("}");
- printf("\n");
- }
- break;
- case 4:printf("The complement of the intersection of set A and set B is:");
- s=sum-(sumy&sumz);
- if(s==0)printf("Empty set");
- else{
- printf("{");
- for(i=0;s>0;i++){
- k=s%2;
- if(k==1){
- printf("%c",i+97);
- if(s>=2)printf(",");
- }
- s=s/2;
- }
- printf("}");
- printf("\n");
- }
- break;
- case 5:printf("The complement of the union of set A and set B is:");
- s=sum-(sumy|sumz);
- if(s==0)printf("Empty set\n");
- else{
- printf("{");
- for(i=0;s>0;i++){
- k=s%2;
- if(k==1){
- printf("%c",i+97);
- if(s>=2)printf(",");
- }
- s=s/2;
- }
- printf("}");
- printf("\n");
- }
- break;
- }
- }
- scanf("%d",&op);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement