AtCoder Beginner Contest 048/AtCoder Regular Contest 064
はい。
https://beta.atcoder.jp/contests/abc048
A - AtCoder *** Contest
C++14
#include<bits/stdc++.h> using namespace std; int main(){ char a[100]; scanf("AtCoder %s Contest",a); printf("A%cC\n",a[0]); return 0; }
中央の1文字目さえなんとかすればなんとかなると思います。
B - Between a and b ...
Python3
a,b,x=map(int,input().split()) print((b//x)-(a//x) if a%x else (b//x)-(a//x)+1)
C++14
#include<bits/stdc++.h> using namespace std; int main(){ long long a,b,x; scanf("%lld %lld %lld",&a,&b,&x); printf("%lld\n",(b/x)-(a/x)+(a%x==0?1:0)); return 0; }
方針は立ったけども型とかでエラー出たり演算子の優先とかよくわからずすごい時間がかかった。b/xでb以下の割り切れる個数、a/xを引いてa自身が割り切れるとか0の場合とかに気をつければ個数を計算できると思う。
C - Boxes and Candies
Python3
n,x=map(int,input().split()) l=[int(i) for i in input().split()] ans=0 for i in range(1,n): if l[i]+l[i-1]>x: tmp=l[i]+l[i-1]-x ans+=tmp l[i]=max(0,l[i]-tmp) print(ans)
C++14
#include<bits/stdc++.h> using namespace std; int main(){ int n; long long x,t,ans=0; scanf("%d %lld",&n,&x); vector<long long> a(n); for (auto&e:a) scanf("%lld",&e); for (int i=1;i<n;i++) { if (a[i]+a[i-1]>x) { t=a[i]+a[i-1]-x; ans+=t; a[i]=a[i]-t<0?0:a[i]-t; } } printf("%lld\n",ans); return 0; }
これも方針立っても微妙なエラーで無駄に苦戦した。けどもまぁソレも練習のうちということで。左端から隣り合う2つを見ていって和をxにするためには右側を優先して減らして負の数にならないように気をつければ大丈夫だと思う。