#include<cstdio>
#define _rep(i,a,b) for(int i=(a);i<=(b);i++)
typedef long long ll;
const int N=2e5+10;
int t,n;
struct node{
int s,e,d;
}de[N];
int main()
{
//freopen("in.txt","r",stdin);
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
_rep(i,1,n)scanf("%d%d%d",&de[i].s,&de[i].e,&de[i].d);
ll cnt,l=0,r=0x7fffffff;
while(l<r)
{
int mid=l+r>>1;
cnt=0;
_rep(i,1,n)if(mid>=de[i].s)
{
if(mid>=de[i].e)cnt+=(de[i].e-de[i].s)/de[i].d+1;
else cnt+=(mid-de[i].s)/de[i].d+1;
}
if(cnt&1)r=mid;else l=mid+1;
}
cnt=0;
_rep(i,1,n)if(l>=de[i].s&&l<=de[i].e&&(l-de[i].s)%de[i].d==0)cnt++;
if(cnt&1)printf("%lld %lld\n",l,cnt);else puts("There's no weakness.");
}
return 0;
}
【题解】CH0805 二分
最新推荐文章于 2020-06-12 22:28:12 发布