首先这道题样例很多,先一个一个看
我们发现k为奇数是必为winter,其实可以证明
k为奇数时,k=a+(a+1)意味着可以直接实现winter士兵+1,summer士兵-1
k为偶数时,显然当m也为偶数时,必为winter
证:k=(a-1)+(a+1) 这就相当于winter士兵+2,summer士兵-2,因为m为偶数,所以成立
注意样例几个特判,数据在管理里的文件一栏
1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 long long n,m,k; 7 int main() 8 {int T,l,year; 9 cin>>year; 10 cin>>T; 11 for (l=1;l<=T;l++) 12 { 13 scanf("%lld%lld%lld",&n,&m,&k); 14 if (m==0) 15 {printf("Case %d: Winter ",l);} 16 else if (m%k==0) 17 {printf("Case %d: Winter ",l);} 18 else if (n+m<=k&&m) 19 {printf("Case %d: Summer ",l);} 20 else if (m%2==1&&k%2==0) 21 {printf("Case %d: Summer ",l);} 22 else if (m%2==0&&k%2==0) 23 {printf("Case %d: Winter ",l);} 24 else if (k%2==1) 25 {printf("Case %d: Winter ",l);} 26 } 27 }