A. Is it rated?
题解:就是判断下序列是否符合条件,难点在读题orz
Code:
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n,a[1005],b[1005];
int main()
{
int flag=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i],&b[i]);
if(a[i]!=b[i])
{
flag=1;
}
}
if(flag)printf("rated\n");
else
{
for(int i=1;i<n;i++)
{
if(a[i]<a[i+1])
{
flag=1;
break;
}
}
if(flag)
{
printf("unrated\n");
}
else
{
printf("maybe\n");
}
}
return 0;
}
B. T-Shirt Hunt
题意:给出你当前的排名a,通过给的公式挑选人,你可以通过Hack别人拿到100分,失败-50分,问最少的成功Hack的次数
题解:重点在读题。。。为啥这么长)就是暴力判断自己是否能被选中,枚举周围可以到达的分数,判断即可;
#include<bits/stdc++.h>
using namespace std;
int aa[100];
int n,x,y,a;
int T=25;
bool dd(int s,int a)
{
int flag=0;
int i=(s/50)%475;
for(int t=1;t<=25;t++)
{
i=(96*i+42)%475;
if(26+i==a)
{
return true;
}
}
return false;
}
int main()
{
int flag=0;
scanf("%d%d%d",&a,&x,&y);
for(int i=x;i>=y;i-=50)
{
if(dd(i,a))
{
printf("0\n");
return 0;
}
}
for(int i=x+100,j=1;j<500;i+=100,j++)//此处防止(i-50)退到小于y的情况
{
if(dd(i,a)||dd(i-50,a))
{
printf("%d\n",j);
return 0;
}
}
return 0;
}
(tourist出的题,让我发现自己有读题障碍。。。。Orz。。。