1.
#include<bits/stdc++.h>
using namespace std;
long long a,b,flag1,flag2,flag3,num1[100],num2[100],t1,t2;
int main()
{
cin>>a>>b;
for (int i=2;i<=sqrt(a);i++)
{
if (a % i==0) flag1=1;
}
for (int i=2;i<=sqrt(b);i++)
{
if (b % i==0) flag2=1;
}
if (flag1==0 && flag2==0 && a!=b)
{
cout<<"full credit";
return 0;
}
if (a==b)
{
cout<<"no credit";
return 0;
}
int x=2,y=2;
while(a>1)
{
if (a % x==0)
{
a=a/x;
num1[++t1]=x;
num1[++t1]=a;
if ((a)%x==0) x--;
}
if (x>sqrt(a)) break;
x++;
}
while(b>1)
{
if (b % y==0)
{
b=b/y;
num2[++t2]=y;
num2[++t2]=b;
if ((b)%y==0) y--;
}
if (y>sqrt(b)) break;
y++;
}
sort(num1+1,num1+t1+1);
sort(num2+1,num2+t2+1);
for (int i=1;i<=t1;i++)
{
for (int j=1;j<=t2;j++)
{
if (num1[i]==num2[j] || num1[i]==num1[i+1] || num2[j]==num2[j+1])
{
flag3=1;
break;
}
}
//cout<<flag3<<endl;
}
for (int i=1;i<=t1;i++)
if (num1[i]==num1[i+1])
{
flag3=1;
break;
}
for (int j=1;j<=t2;j++)
{
if (num2[j]==num2[j+1])
{
flag3=1;
break;
}
}
if (flag3==1)
{
cout<<"no credit";
}
else cout<<"partial credit";
}
2.
#include<bits/stdc++.h>
using namespace std;
int t,n;
int main()
{
scanf("%d",&t);
for (int i=1;i<=t;i++)
{
scanf("%d",&n);
int a[n+5];
for (int j=1;j<=n;j++) scanf("%d",&a[j]);
int num=a[n],sum=1,ans=0;
a[0]=num;
for (int j=n;j>1;j--)
{
if (a[j]==num && a[j-1]!=num)
{
ans++;
j-=sum;
a[j]=num;
sum*=2;
j++;
}
else sum++;
}
printf("%d\n",ans);
}
}
3.
#include<bits/stdc++.h>
using namespace std;
int n,c,a[200005],f[10000000],ans;
int main()
{
cin>>n>>c;
for (int i=1;i<=n;i++)
{
cin>>a[i];
f[a[i]+c]++;
}
for (int i=1;i<=n;i++) ans+=f[a[i]];
cout<<ans;
}
4
#include <bits/stdc++.h>
using namespace std;
int n,m,t;
unsigned long long ten[19]={0};
long long pl(long long x,int len)
{
long long n=x-ten[len-1]+1;
if(len==1)
{
return n*(n+1)/2;
}
return ((n % 998244353)*((n+1) % 998244353)/2 % 998244353 + pl(ten[len-1]-1,len-1)) % 998244353;
}
int main()
{
long long x,y;
int len=0;
ten[0]=1;
for(unsigned long long i=1,j=10;i<=18;i++,j*=10)
{
ten[i]=j;
}
cin>>x;
y=x;
while(y!=0)
{
len++;
y/=10;
}
cout<<pl(x,len);
}
5
#include<bits/stdc++.h>
using namespace std;
unsigned long long ans,n,ad[1000005];
const int MOD=1000000007;
struct node
{
unsigned long long a,b;
}p[1000005];
bool cmp(node x,node y)
{
return x.b*(y.a-1)>y.b*(x.a-1);
}
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("%lld%lld",&p[i].a,&p[i].b);
sort(p+1,p+n+1,cmp);
ad[n]=1;
for (int i=n-1;i>=1;i--)
{
ad[i]=ad[i+1]*p[i+1].a % MOD;
}
for (int i=1;i<=n;i++)
{
ans+=ad[i]*p[i].b % MOD;
ans %= MOD;
}
printf("%lld",ans%MOD);
}