読者です 読者をやめる 読者になる 読者になる

メモ

yukicoderで遊んでいる競プロゆるふわ勢

yukicoder No.369 足し間違い

問題はこちら
No.369 足し間違い - yukicoder

足して引く

int main(){
	int s=0,n,v;
	scanf("%d",&n);
	while(n--){
		scanf("%d",&v);
		s+=v;
	}
	scanf("%d",&v);
	printf("%d",s-v);
	return 0;
}

最初の値を読み飛ばすことと、最後の値を引くことに気をつけて縮める

i,s;
main(n){
	for(;~scanf("%d",&n);i++?s+=n:0);
	s=!printf("%d",s-n*2);
}

68B

2016/10/16追記
最初の値もsに合計してしまって、そのかわり途中の値は1ずつ減らすと整合性が取れる
今まではs=N*0+\sum_{k=1}^{N}A_i+vと計算していたが、s=(N-1)+\sum_{k=1}^{N}(A_i-1)+(v-1)を計算する

i,s;
main(n){
	for(;~scanf("%d",&n);s=n-1);
	s=!printf("%d",s-n*2+2);
}

ずれが2か…ということはnをdecすればいいな

i,s;
main(n){
	for(;~scanf("%d",&n);s=--n);
	s=!printf("%d",s-n*2);
}

64B