PKU2636
id:RiSKさんの所で出たPKU2636について適当にやってみた。
以下ネタばれ注意
まず、素直に書いてみる
int main(){ int n,i,m,j,v,k; scanf("%d",&n); for(i=0;i<n;++i){ scanf("%d",&m); v=1; for(int j=0;j<m;++j){ scanf("%d",&k); v+=k-1; } printf("%d\n",v); } }
上のは問題文通り基本に忠実に解いています。
しかし、scanfが三箇所にある等の無駄が目立ちます。
というわけで、その無駄を省きましょう。
k; main(i,n){ for(gets(n);~scanf("%d",&n); k||printf("%d\n",1-i)) i=!k--?k=n:i-n; }
えーと原型無くなっているような気もしますけど基本は同じです。
最初の一回のscanfは綺麗に消せなかったのでgetsでお茶を濁しました。