本来兴致勃勃的想乘着这一次上紫,于是很早很早的到了机房
但是好像并没有什么用,反而rating-=47
Codeforces Round #438(Div.1+Div.2)
今天就这样匆匆的总结一下,心情不好qaq
首先是 A.Bark to Unlock
启示:(1)不能直接把char数组进行比较!!!
(2)读题要读清,不能漏读条件!!!
#include<bits/stdc++.h>
using namespace std;
int bo[][],n;
string s,t;
int main(){
cin>>s;
scanf("%d",&n); cin>>t;
bo[][t[]-'a']=; bo[][t[]-'a']=;
if (bo[][s[]-'a']&&bo[][s[]-'a']||bo[][s[]-'a']&&bo[][s[]-'a']){
printf("YES"); return ;
}
for (int i=;i<=n;++i){
cin>>t;
if (s==t){
printf("YES"); return ;
}
bo[][t[]-'a']=; bo[][t[]-'a']=;
if (bo[][s[]-'a']&&bo[][s[]-'a']){
printf("YES"); return ;
}
}
printf("NO");
}
总之我的做法时先把时针,分针,秒针在秒意义下的位置,进行排序
然后把t1和t2也转化成相同状态,最后判断t1和t2分别在哪个位置
大概就是这样
#include<bits/stdc++.h>
using namespace std;
int h,m,s,t1,t2,s1,s2,s3,a1,a2;
int main(){
cin>>h>>m>>s>>t1>>t2;
s1=*(h%)+*m+s; s2=*m+*s; s3=*s;
a1=*(t1%); a2=*(t2%);
if(s1>s2)swap(s1,s2); if(s2>s3)swap(s2,s3); if(s1>s2)swap(s1,s2);
if(a1>a2)swap(a1,a2); bool bo=;
if(s1<=a1&&a2<=s2|| s2<=a1&&a2<=s3)bo=;
if(a2<=s1||a1>=s3)bo=; if(a1<=s1&&a2>=s3)bo=;
if(bo) puts("YES"); else puts("NO");
}
最后只希望今天的CF我的rating不会掉吧,上紫我的水平可能还不够吧