2013暑假ACM集训_12级周赛3

A

http://acm.sdut.edu.cn:8080/judge/contest/view.action?cid=36#problem/A

输入两个生日,判断谁年龄大,水题

 1 #include<stdio.h>

 2 int main()

 3 {

 4     int n,i,a,b,c,x,y,z;

 5     while(scanf("%d",&n)!=EOF)

 6     {

 7         for(i=1;i<=n;i++)

 8         {

 9             scanf("%d %d %d %d %d %d",&a,&b,&c,&x,&y,&z);

10             if(a>x)

11             printf("cpcs\n");

12             else if(a<x)

13             printf("javaman\n");

14             else if(a==x)

15             {

16                 if(b>y)

17                 {

18                     printf("cpcs\n");

19                 }

20                 else if(b<y)

21                 printf("javaman\n");

22                 else if(b==y)

23                 {

24                     if(c>z)

25                     printf("cpcs\n");

26                     else if(c<z)

27                     printf("javaman\n");

28                     else if(c==z)

29                     printf("same\n");

30                 }

31             }

32         }

33     }

34     return 0;

35 }
View Code

 

B

http://acm.sdut.edu.cn:8080/judge/contest/view.action?cid=36#problem/B

输入一个年份,求出该年份的天干地支,找一个年份,循环求就行。

注意范围是-9999----+9999  公元0年是不存在的(比赛时因为这个一直WA)。

  1 #include<stdio.h>

  2 int main()

  3 {

  4     int a[10002],b[10002],c[10002],d[10002],i,n,x,y,m;

  5         x=7;y=-9;

  6         for(i=1;i<=9999;i++)

  7         {

  8             c[i]=x;

  9             d[i]=y;

 10             x--;

 11             y++;

 12             if(x<1)

 13             x=10;

 14             if(y>-1)

 15             y=-12;

 16         }

 17         x=8;y=-10;

 18         for(i=1;i<=9999;i++)

 19         {

 20             a[i]=x;

 21             b[i]=y;

 22             x++;

 23             y--;

 24             if(x>10)

 25             x=1;

 26             if(y<-12)

 27             y=-1;

 28         }

 29     while(scanf("%d",&n)!=EOF)

 30     {

 31         for(i=1;i<=n;i++)

 32         {

 33             scanf("%d",&m);

 34             if(m>=0)

 35             {

 36                 if(a[m]==1)

 37             printf("Jia");

 38             else if(a[m]==2)

 39             printf("Yi");

 40              else if(a[m]==3)

 41             printf("Bing");

 42              else if(a[m]==4)

 43             printf("Ding");

 44              else if(a[m]==5)

 45             printf("Wu");

 46              else if(a[m]==6)

 47             printf("Ji");

 48              else if(a[m]==7)

 49             printf("Geng");

 50              else if(a[m]==8)

 51             printf("Xin");

 52              else if(a[m]==9)

 53             printf("Ren");

 54              else if(a[m]==10)

 55             printf("Gui");

 56             if(b[m]==-1)

 57             printf("zi\n");

 58               if(b[m]==-2)

 59             printf("chou\n");

 60               if(b[m]==-3)

 61             printf("yin\n");

 62               if(b[m]==-4)

 63             printf("mao\n");

 64               if(b[m]==-5)

 65             printf("chen\n");

 66               if(b[m]==-6)

 67             printf("si\n");

 68               if(b[m]==-7)

 69             printf("wu\n");

 70               if(b[m]==-8)

 71             printf("wei\n");

 72               if(b[m]==-9)

 73             printf("shen\n");

 74               if(b[m]==-10)

 75             printf("you\n");

 76               if(b[m]==-11)

 77             printf("xu\n");

 78               if(b[m]==-12)

 79             printf("hai\n");

 80             }

 81             else if(m<0)

 82             {

 83                 m=-m;

 84                 if(c[m]==1)

 85             printf("Jia");

 86             else if(c[m]==2)

 87             printf("Yi");

 88              else if(c[m]==3)

 89             printf("Bing");

 90              else if(c[m]==4)

 91             printf("Ding");

 92              else if(c[m]==5)

 93             printf("Wu");

 94              else if(c[m]==6)

 95             printf("Ji");

 96              else if(c[m]==7)

 97             printf("Geng");

 98              else if(c[m]==8)

 99             printf("Xin");

100              else if(c[m]==9)

101             printf("Ren");

102              else if(c[m]==10)

103             printf("Gui");

104             if(d[m]==-1)

105             printf("zi\n");

106               if(d[m]==-2)

107             printf("chou\n");

108               if(d[m]==-3)

109             printf("yin\n");

110               if(d[m]==-4)

111             printf("mao\n");

112               if(d[m]==-5)

113             printf("chen\n");

114               if(d[m]==-6)

115             printf("si\n");

116               if(d[m]==-7)

117             printf("wu\n");

118               if(d[m]==-8)

119             printf("wei\n");

120               if(d[m]==-9)

121             printf("shen\n");

122               if(d[m]==-10)

123             printf("you\n");

124               if(d[m]==-11)

125             printf("xu\n");

126               if(d[m]==-12)

127             printf("hai\n");

128             }

129         }

130     }

131     return 0;

132 }
View Code

 

C

http://acm.sdut.edu.cn:8080/judge/contest/view.action?cid=36#problem/C

给出两种出租车的计费方案,求出第二种比第一种收费要贵多少。因为费用到了小数部分,注意要两种方案要先四舍五入在相减。

 1 #include<stdio.h>

 2 #include<string.h>

 3 #include<stdlib.h>

 4 int main()

 5 {

 6      int n;

 7      scanf("%d", &n);

 8      while(n--)

 9      {

10         int d,time;

11         scanf("%d %d",&d,&time);

12 

13         double m1=10.0,m2=11.0;

14         if(d>=3)

15         {

16             if(d>=10)

17             {

18                 m1+=(14.0+(d-10)*3*1.0);

19                 m2+=(17.5+(d-10)*3.75);

20             }

21             else

22             {

23                 m1+=((d-3)*2.0) ;

24                 m2+=((d-3)*2.5);

25             }

26         }

27                 m1+=(1+time*0.4);

28                 m2+=((time*2.5)/4);

29 

30                 int x=m1;

31                 if(m1-x>=0.5)

32                 x+=1;

33                 int y=m2;

34                 if(m2-y>=0.5)

35                 y+=1;

36                 printf("%d\n",y-x);

37         }

38         return 0;

39 }
View Code

 

D

http://acm.sdut.edu.cn:8080/judge/contest/view.action?cid=36#problem/D

石头剪刀布问题,找下规律就是输入中间的那个字符串就是要输出的结果。

 1 #include <stdio.h>

 2 #include<string.h>

 3 #include<stdlib.h>

 4 

 5 int main()

 6 {

 7     char a[25],b[25],c[25];

 8     int n,i;

 9     while(scanf("%d",&n)!=EOF)

10     {

11        

12         for(i=1;i<=n;i++)

13     { 

14          memset(a,0,sizeof(a));

15          memset(b,0,sizeof(b));

16          memset(c,0,sizeof(c));

17         scanf("%s%s%s",a,b,c);

18         printf("%s will survive\n",b);

19     }

20     }

21     return 0;

22 }
View Code

 

E

http://acm.sdut.edu.cn:8080/judge/contest/view.action?cid=36#problem/E

输入三个数,判断后两个数哪一个数和第一个数相差最小,输出A或B

 1 #include<stdio.h>

 2 #include<math.h>

 3 #include<stdlib.h>

 4 int main()

 5 {

 6     int n,i,a,m,b;

 7     while(scanf("%d",&n)!=EOF)

 8     {

 9         for(i=1;i<=n;i++)

10         {

11             scanf("%d %d %d",&m,&a,&b);

12             if(abs(m-a)<abs(m-b))

13             printf("A\n");

14             else

15             printf("B\n");

16         }

17     }

18     return 0;

19 }
View Code

 

F

http://acm.sdut.edu.cn:8080/judge/contest/view.action?cid=36#problem/F

 

G

http://acm.sdut.edu.cn:8080/judge/contest/view.action?cid=36#problem/G

你可能感兴趣的:(ACM)