标签:style http color io os ar java for sp
You are given an easy task by your supervisor -- to find the best value of X, one of the parameters in an evaluation function, in order to improve the accuracy of the whole program.
However, after a few days‘ analysis, you realize that it is far harder than you imagine. There are so many values X can be, and the only way to find the best one among them is to try all these possible values one after another!
Fortunately, you know that X is an integer and thanks to the previous works by your senior fellow apprentices, you have got n constraints on X. Each constraint must be in one of the following forms:
1. < k: means that X is less than integer k;
2. > k: means that X is greater than integer k;
3. <= k: means that X is less than or equal to integer k;
4. >= k: means that X is greater than or equal to integer k;
5. = k: means that X is equal to integer k.
Now, you are going to figure out how many possible values X can be, so that you can estimate whether it is possible to finish your task before deadline.
1 2 > 2 <= 5
3
#include<stdio.h> #define ll long long #define inf 9999999999 int main() { ll t,n,a,l,r; char s[5]; scanf("%lld",&t); while(t--) { scanf("%lld",&n); l=-inf; r=inf; int flag=1; while(n--) { scanf("%s%lld",s,&a); if(s[1]!='\0'&&flag) { if(s[0]=='>')if(l<a)l=a; if(s[0]=='<'&&r>a)r=a; } else if(flag) { if(s[0]=='>'&&l<a+1)l=a+1; if(s[0]=='<'&&r>a-1)r=a-1; if(s[0]=='=') if(l<=a&&a<=r)l=r=a;else flag=0; } } if(flag==0||l>r)printf("0\n"); else if(l==-inf||r==inf)printf("-1\n"); else printf("%lld\n",r-l+1); } }
标签:style http color io os ar java for sp
原文地址:http://blog.csdn.net/u010372095/article/details/39855833