求帮看(55分)
查看原帖
求帮看(55分)
996229
UNPZM楼主2024/4/20 19:12
#include<iostream>
#include<algorithm>
using namespace std;
struct node{
   int l,r;
}a[1005],b[1005];
int cnt,cntb;
bool cmp(node n1,node n2){
   return n1.l<n2.l;
}
int main(){
      string s;
      while(getline(cin,s)){
         s+=" ";
         int x=0,y=0,num=0;
         int fst=1,flag=0;
         for(int i=0;i<s.size();i++){
            if(s[i]>='0'&&s[i]<='9'){
               if(s[i-1]=='-'){
                  flag=1;
               }
               num=num*10+s[i]-'0';
               if(!(s[i+1]>='0'&&s[i+1]<='9')){
                  if(flag)num=-num;
                  if(fst==1){
                     x=num;
                  }else if(fst==2){
                     y=num;
                  }   
                  num=0;
                  fst++;
                  flag=0;
               } 
            }
         }
         if(s.find("&&")!=-1){
            if(x<=y){
               a[++cnt].l=x;
               a[cnt].r=y;
            }
         }else if(s.find(">=")!=-1){
            a[++cnt].l=x;
            a[cnt].r=32767;
         }else if(s.find("<=")!=-1){
            a[++cnt].l=-32768;
            a[cnt].r=y;
         }
      }
      if(cnt==0){
         cout<<"false";
         return 0;
      }
      sort(a+1,a+cnt+1,cmp);
      int l=a[1].l,r=a[1].r;
      for(int i=2;i<=cnt;i++){
         if(a[i].l<=r+1){
            r=max(r,a[i].r);
         }else{
            b[++cntb].l=l;
            b[cntb].r=r;
            l=a[i].l;
            r=a[i].r;
         }
      }
      b[++cntb].l=l;
      b[cntb].r=r;
      if(cntb==1&&b[1].l==-32768&&b[1].r==32767){
         cout<<"true";
         return 0;
      }
      for(int i=1;i<=cntb;i++){
         if(b[i].l==-32768){
            cout<<"x <= "<<b[i].r;
         }
         else if(b[i].r==32767){
            cout<<"x >= "<<b[i].l;
         }
         else{
            cout<<"x >= "<<b[i].l<<"&& x <= "<<b[i].r;
         }
         if(i==cntb){
            
         }else{
            cout<<"||"<<endl;
         }
      }
   return 0;
}
2024/4/20 19:12
加载中...