10分求助

P1007 独木桥

@[迟陌](/user/160870) 因为快读写挂了(年轻人好好学习,少卡常,少找错误代码) 然后就过了[记录](https://www.luogu.com.cn/record/118008993) ```cpp #include<stdio.h> #include<math.h> using namespace std; int max(int x, int y) { if (x >= y) return x; else return y; } int min(int x, int y) { if (x <= y) return x; else return y; } int a[1000001]; int read() { char c = getchar(); int s = 0; while (c >= '0' && c <= '9') { s = s * 10 + c - '0'; c = getchar(); } return s; } int main() { int l, n; // l = read(); // n = read(); scanf("%d%d",&l,&n); for (int i = 1; i <= n; i++) scanf("%d",&a[i]); // a[i] = read(); if (!n) { printf("0 0"); return 0; } int mint=-1,maxt=-1; for (int i = 1; i <= n; i++) { mint = max(min(l + 1 - a[i], a[i]),mint); maxt = max(max(l + 1 - a[i], a[i]), maxt); } printf("%d %d", mint, maxt); return 0; } ``` 最后,给你一份规整一点的整数快读代码 ```cpp inline int read() { int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-') { f=-1; } ch=getchar(); } while(ch>='0'&&ch<='9') { x=x*10+ch-'0'; ch=getchar(); } return x*f; } ```
by ge_zhe @ 2023-07-29 17:23:39


@[迟陌](/user/160870) 另外,快读挂了的原因是没有处理连续的空格(我就说这快读怎么这么短),一般是这样处理 ```cpp while(ch<'0'||ch>'9') { ch=getchar(); } ```
by ge_zhe @ 2023-07-29 17:25:47


@[ge_zhe](/user/724440) 噢谢谢大佬 判断连续空格确实没写,我学的其实是有判负和连续空格的,但是一看都是正数就偷了个懒,没想到就被卡了 再次感谢大佬指导!!!
by 迟陌 @ 2023-07-29 22:20:10


|