A. Dice Tower
#include <iostream>
using namespace std;
int main()
{
int n,x,a,b,i,f;
cin>>n>>x;f=1;
for(i=0;i<n;i++)
{
cin>>a>>b;
if(x==a||x==7-a||x==b||x==7-b)
f=0;
}
if(f==0) cout<<"NO"<<endl;
if(f==1) cout<<"YES"<<endl;
return 0;
}
B.
Well-known Numbers
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int s,k,i,m;
int f[1001],ans[101];
cin>>s>>k;
memset(f,0,sizeof(f));
f[0]=1;f[1]=1;
for(i=2;f[i-1]<s;i++)
{
if(i<=k)
f[i]=f[i-1]*2;
else
f[i]=f[i-1]*2-f[i-k-1];
}
int t;
t=i-1;
for(i=t,m=0;s>=0&&i>=0;i--)
{
if(f[i]<=s)
{s-=f[i];ans[m]=f[i];m++;}
}
if(m==1) {ans[m]=0;m++;}
cout<<m<<endl;
for(i=0;i<m;i++) cout<<ans[i]<<" ";
cout<<endl;
return 0;
}