台風で暇なので、twitter見ながらA問題とB問題を埋めています。
今回の問題はこれ。無駄にiotaを使っています。
[blogcard url=”https://atcoder.jp/contests/abc131/tasks/abc131_b”]
書いたコードは以下の通り。
#include <iostream> #include <numeric> #include <cmath> using namespace std; int main(int argc, char const *arga[]) { int n,l; cin>>n>>l; int a[n]; iota(a,a+n,l); int max=accumulate(a,a+n,0); if(a[0]<=0&&a[n-1]>=0){ cout<<max<<endl; }else if(a[0]>0){ cout<<max-a[0]<<endl; }else{ cout<<max-a[n-1]<<endl; } return 0; }
他の人の解答見てたらこんなことしてないんですけど、この前にnumeric見ていたので、使ってみっか〜っという感じでiotaを使ってみました。
iotaは第3引数を初期値として整数列を作ります。たま〜に使えそうなので、使っておくかという感じです。
ぶっちゃけ、この問題は整数列なんて作らなくてもいけるので、はいって感じです。