CSU 1535

SDUT 周赛 10.9

题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=94468#problem/J

思路:比赛的时候没有做出来,心气有些浮躁,其实比赛的时候应该好好思考一下,遇到灵异情况要考虑重敲!!!!

AC代码:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7     int n,m,d,p,q,n1,n2,n3,k1,k2;
 8     char s[101];
 9     while(~scanf("%d%d",&n,&m))
10     {
11         for(int i=0;i<n;i++)
12         {
13             scanf("%d%s",&d,s);
14         }
15         p=m-1;
16         q=n-m;
17         n1=n-1;
18         n2=n-2;
19         n3=n-3;
20         int f=0;
21         if(n==1||n==2)
22         {
23             printf("NO
");
24             continue;
25         }
26         else if(n==3)
27         {
28             if(m==2)
29             {
30                 printf("YES
");
31             }
32             else
33             {
34                 printf("NO
");
35             }
36             continue;
37         }
38         if(n1%3==0)
39         {
40             k1=max(p,q);
41             k2=min(p,q);
42             if(k1>0&&k2>0&&k1<=k2*2)
43             {
44                 f=1;
45                 printf("YES
");
46                 continue;
47             }
48         }
49         if(n2%3==0)
50         {
51             k1=max(p,q-1);
52             k2=min(p,q-1);
53             if(k1>0&&k2>0&&k1<=k2*2)
54             {
55                 f=1;
56                 printf("YES
");
57                 continue;
58             }
59         }
60         if(n3%3==0)
61         {
62             k1=max(p-1,q-1);
63             k2=min(p-1,q-1);
64             if(k1>0&&k2>0&&k1<=k2*2)
65             {
66                 f=1;
67                 printf("YES
");
68                 continue;
69             }
70         }
71         if(f==0)
72         {
73             printf("NO
");
74         }
75     }
76     return 0;
77 }
View Code
原文地址:https://www.cnblogs.com/qioalu/p/4868261.html