遗憾的,神志不清了,导致我快读写挂了
不但数字而且字符串/kk
inline void read(){}
template<class T1,class...T2>
inline void read(T1&ret,T2...rest){
ret=0;char ch=getchar();bool f=false;
while(ch<'0'&&ch>'9')f=ch=='-',ch=getchar();//&& 应该是 ||
while(ch>='0'&&ch<='9')ret=ret*10+ch-'0',ch=getchar();
if(f)ret=-ret;
read(rest...);
}
这样第一个循环根本进不去。
理性分析一下:第一个数字可以读入,还会读走下一个空格,因此第一行都可以正常读入;
如果没有行末空格则最后一个数字会读到回车,那么接下来也都能读。
洛谷ST1数据疑似有行末空格,所以挂分了,但是CCF历年数据好像没有行末空格,所以期望不会挂;
字符串读入也挂了,遗憾
inline void read(string&ret){
ret.clear();char ch=getchar();
while(ch==' '||ch=='\n'||ch=='\r')ch=getchar();
while(!(ch==' '||ch=='\n'||ch=='\r'))ret+=ch,ch=getchar();//如果没有文末回车,则直接到EOF,这里会TLE
}
而CCF历年数据没有文末回车
所以我T2期望45->0
然后,今年T3又要读字符串又要读数字,但是上面这两个东西加起来洛谷上居然没挂分,但是很危险。
所以原本期望100+45+100+0,现在大概是100+0+{0,100}+0,遗憾
我收回我前几天说的话,这边建议大家少玩点快读。
唉。