1. 程式人生 > >BZOJ--1271-秦騰與教學評估

BZOJ--1271-秦騰與教學評估

題目電波: BZOJ--1271-秦騰與教學評估

列舉點的位置 先判斷一共有多少個人數 人數%2==0 說明不符合 

之後列舉點的位置 看左邊人數是奇數還是偶數

#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define maxn 200005
LL a[maxn],b[maxn],c[maxn];
int main(){
   int t;
   cin>>t;
   while(t--){
      int n;
      bool fa=0;
      cin>>n;
      LL r=0;
      LL sum=0;
      for(int j=1;j<=n;j++){
         scanf("%lld%lld%lld",&a[j],&b[j],&c[j]);
         sum+=1+(b[j]-a[j])/c[j];
         r=max(r,b[j]);
      
} if(sum%2==0) fa=1; if(fa) printf("Poor QIN Teng:(\n"); else{ sum=0; LL l=1; LL mid; while(l<=r){ LL ans=0; mid=1LL*(l+r)/2; for(int j=1;j<=n;j++){ if(a[j]<=mid&&mid<=b[j]){ ans+=1+(mid-a[j])/c[j];
}else if(mid>b[j]){ ans+=1+(b[j]-a[j])/c[j]; } } if(ans%2){ r=mid-1; }else{ l=mid+1; } } for(int j=1;j<=n;j++){ if(l>=a[j]&&l<=b[j]){ if((l-a[j])%c[j]==0) sum++;
} } printf("%lld %lld\n",l,sum); } } }