Function and Function
#include<cstdio>
int a[11]={1,0,0,0,1,0,1,0,2,1};
long long f(long long x){
long long ans=0;
while(x>0){
ans+=a[x%10];
x/=10;
}
return ans;
}
int main(){
int T;
scanf("%d",&T);
while(T--){
int sum=0,ans;
long long s,k;
scanf("%lld%lld",&s,&k);
if(k==0)
printf("%lld\n",s);
else {
while(s>=2&&k>0){
s=f(s);
k--;
}
int ans=s;
if(s>=2)
printf("%lld\n",ans);
else {
if(k%2==0)
{
if(ans==1)
ans=1;
else ans=0;
}
else{
if(ans==1)
ans=0;
else ans=1;
}
printf("%d\n",ans);
}
}
}
}
Books
#include<cstdio>
#include<algorithm>
using namespace std;
int main(){
int T;
int a[100005];
scanf("%d",&T);
while(T--){
int n,m,s=0,tot=0,flag=0;
long long sum=0;
int minn=0x3f3f3f3f;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
scanf("%d",&a[i]);
if(a[i]==0)
s++;
}if(n==m)
{
flag=1;
//printf("Richman\n");
//continue;
}
if(s>m){
flag=2;
//printf("Impossible\n");
//continue;
}
else m-=s;
if(!flag){
for(int i=0;i<n;i++){
if(flag)
break;
if(a[i]==0)
continue;
tot++;
if(tot<=m)
sum+=a[i];
else{
minn=min(minn,a[i]);
}
}
}
if(minn==0)
flag=2;
else sum+=minn-1;
if(flag==2)
printf("Impossible\n");
else if(flag==1)
printf("Richman\n");
else printf("%lld\n",sum);
}
}
Flippy Sequence
#include<cstdio>
#include<cstring>
int main(){
int T;
char a[1000005],b[1000005];
scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
scanf("%s%s",a,b);
int x=0,y=0;
for(int i=0;a[i]!='\0';i++){
if(a[i]==b[i]){
if(y!=0){
x++;
y=0;
}
}
else y++;
}
if(y!=0)x++;
if(x==2)
printf("6\n");
else if(x==0)
printf("%d\n",n*(n+1)/2);
else if(x==1)
printf("%d\n",(n-1)*2);
else printf("0\n");
}
}