台風で暇なので、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引数を初期値として整数列を作ります。たま〜に使えそうなので、使っておくかという感じです。
ぶっちゃけ、この問題は整数列なんて作らなくてもいけるので、はいって感じです。