uvaoj105
来源:互联网 发布:矩阵有分配律吗 编辑:程序博客网 时间:2024/05/17 02:57
uvaoj105
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=41
刷一下存在感,,,看到uva1077 ,也是醉了。。
这个题不需要坐标离散化, 直接把数据打到数组上就可以了。 ( 值<10000 )直接开数组
剩下的就是细节了 ,开始用 while(scanf("%d %d %d",&l,&h,&r) != EOF)) ----->WA
估计是停不下来,就直接写到 char 数组上了 ,gets 很好用,空格不结束 ,回车结束。
#include<stdio.h>#include<string.h>#define max(a,b) a>b?a:b#define min(a,b) a<b?a:bint a[100000];int main(){int maxr=-1,minl = 1000000,l,h,r,i; char s[10];while(gets(s)){l = h =r = 0;if(strlen(s) == 0 ) break; for(i= 0;i<strlen(s);i++) { if(s[i] ==' ')break; l = l*10 + s[i]-'0'; } for(i++;i<strlen(s);i++) {if(s[i] ==' ')break; h = h*10 + s[i]-'0'; } for(i++;i<strlen(s);i++) { if(s[i] ==' ')break; r = r*10 + s[i]-'0'; }for( i = l;i<r;i++)a[i] = max(a[i] , h);maxr = max(maxr , r);minl = min(minl , l);} for(i = minl ;i<maxr;i++)if(i == minl )printf("%d %d ",i ,a[i]);else if( a[i] != a[i-1]){printf("%d %d ",i,a[i]);}printf("%d 0\n",maxr);return 0;}
0 0