A:简单判断,首先得到最短到达Varda's home的步数s,如果step大于最短的s是偶数步则证明可以返回(Yes),否则(No)。
B:题目意思好判断,根据sample就可以得出,由于所给数据非常小,则直接可以暴力解决。
C:2->2 3->3 4->322 5->5 6->53 7->7 8->7222 9->7332得到这些,则可以直接在最后进行排序得出。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
long long a,b,c;
cin>>a>>b>>c;
if(a<0)
a=-a;
if(b<0)
b=-b;
if((c-a-b)%2==0&&c>=(a+b))
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
return 0;
}
515B - Drazil and His Happy Friends:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
int b,g,s[109],ss[109];
memset(s,0,sizeof(s));
memset(ss,0,sizeof(ss));
cin>>b;
for(int i=0;i<b;i++)
{
int a;
cin>>a;
s[a]=1;
}
cin>>g;
for(int i=0;i<g;i++)
{
int c;
cin>>c;
ss[c]=1;
}
for(int i=0;i<=10000;i++)
{
if(s[i%n]==1||ss[i%m]==1)
{
s[i%n]=ss[i%m]=1;
}
}
int sum=0;
for(int i=0;i<n;i++)
{
if(!s[i])
{
sum++;
}
}
for(int i=0;i<m;i++)
{
if(!ss[i])
{
sum++;
}
}
if(sum)
cout<<"No"<<endl;
else
cout<<"Yes"<<endl;
return 0;
}
515C - Drazil and Factorial:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<iostream>
#include<algorithm>
using namespace std;
char cmp(char a,char b)
{
return a>b;
}
int main()
{
int n;
cin>>n;
char s[105],ans[100000];
cin>>s;
for(int i=0;i<n;i++)
{
if(s[i]=='2'||s[i]=='3'||s[i]=='5'||s[i]=='7')
{
int tmp=strlen(ans);
ans[tmp++]=s[i];
}
else if(s[i]=='4')
{
strcat(ans,"322");
}
else if(s[i]=='6')
{
strcat(ans,"53");
}
else if(s[i]=='8')
{
strcat(ans,"7222");
}
else if(s[i]=='9')
{
strcat(ans,"7332");
}
}
sort(ans,ans+strlen(ans),cmp);
cout<<ans<<endl;
return 0;
}