http://codeforces.com/contest/761
A
总步数在1-inf之间
给偶数个数 奇数个数 a,b从0开始
则a,b不能同时为0
int a,b;
cin>>a>>b;
if(a==0 && b==0)
return puts("NO"),0;
if(abs(a-b)==1 || abs(a-b)==0)
puts("YES");
else
puts("NO");
B
n障碍物个数 L为环形长度
给定2人从起点到每个障碍物距离,递增
求两人路径是否concide重合 即环形上所有间隔相等
求余
在这里插入代码片
D
序列ai,bi在l-r范围内 l,r<=1e9
ci=bi-ai;保证ci值各不相同
pi代表c中小于等于当前ci的个数
小于等于ci个数越多说明值越大
个数可以代表ci的值
即pi代表ci
则bi=ci+ai; 而且在l-r之间
bi中大于r的数与r的最大差值
统一减去后 判断有无数<l
ll a[maxn],p[maxn],b[maxn];//a[i]值在l-r内 p[i]:c中小于等于它的个数如果很多 这个值很大 个数可以代表值的大小
int main()
{
IO;
int n;
ll l,r;
cin>>n>>l>>r;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
cin>>p[i];
ll need=0;
for(int i=1;i<=n;i++)
{
b[i]=a[i]+p[i];//pi代表ci
if(b[i]>r)
need=max(need,b[i]-r);
}
int ok=1;
for(int i=1;i<=n;i++)
{
b[i]-=need;
if(b[i]<l)
{
ok=0;
break;
}
}
if(ok)
{
for(int i=1;i<=n;i++)
{
cout<<b[i];
if(i!=n)
cout<<" ";
else
cout<<endl;
}
}
else
cout<<-1<<endl;
return 0;
}