- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 
                        #include <stdio.h>
#define template_pair_declare(x,y) \
struct x##_##y##_pair \
{ \
    x first; \
    x second; \
}
#define template_pair(x,y) struct x##_##y##_pair
#define template_mkpair_declare(x,y) \
template_pair(x,y) mkpair_##x##_##y(x _first,y _second) \
{ \
    template_pair(x,y) res;res.first=_first;res.second=_second; \
    return res; \
}
#define template_mkpair(x,y) mkpair_##x##_##y
template_pair_declare(int,int);
template_pair_declare(float,float);
int main()
{
    template_pair(int,int) ip;
    scanf("%d%d",&ip.first,&ip.second);
    printf("Sum: %d\n",ip.first+ip.second);
    template_pair(float,float) fp;
    scanf("%f%f",&fp.first,&fp.second);
    printf("Sum: %f\n",fp.first+fp.second);
    return 0;
}