Codeforces Round 944 (Div. 4) A —— D
A
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int a,b;
cin>>a>>b;
cout<<min(a,b)<<" "<<max(a,b)<<endl;
}
return 0;
}
B
从字符串开始判断,只要遇见两个不一样的字母,交换并记录。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
string s;
cin>>s;
bool flag = 0;
for(int i=0;i<s.length()-1;i++)
{
if(s[i]!=s[i+1])
{
swap(s[i],s[i+1]);
flag = 1;
break;
}
}
if(!flag)
{
cout<<"NO"<<endl;
}
else
{
cout<<"YES"<<endl<<s<<endl;
}
}
return 0;
}
C
从a开始,向后循环12次,如果遇见c或者d,flag=1;如果遇见b,判断flag是否等于1。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int a,b,c,d;
cin>>a>>b>>c>>d;
a--,b--,c--,d--;
int c1=0;
int c2=0;
bool flag = 0;
for(int i=1;i<12;i++)
{
int u = (a+i)%12;
if(u == b)
{
if(c2 == 1)
{
flag = 1;
}
}
if(u == c || u == d)
{
c2++;
}
}
if(flag)cout<<"Yes"<<endl;
else cout<<"No"<<endl;
}
return 0;
}
//
D
先判断所有的0、1串个数,之后判断第一个字符是否为0,若为0,ans–;判断0、1串的个数是否大于2,若大于,ans–;如果,ans等于1,则说明只有0或1,则直接输出1.
下面展示一些 内联代码片
。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
string s;
cin>>s;
int num = 1;
for(int i=0;i<s.length()-1;i++)
{
if(s[i]!=s[i+1])
{
num++;
}
}
if(num == 1)cout<<1<<endl;
else if( s[0] == '0' || num > 2) cout<<num-1<<endl;
else cout<<num<<endl;
}
return 0;
}