AtCoder Beginner Contest 059/AtCoder Regular Contest 072
はい。
https://beta.atcoder.jp/contests/abc059
A - Three-letter acronym
C++14
#include<bits/stdc++.h> using namespace std; int main(){ char a[10],b[10],c[10]; scanf("%s %s %s",&a,&b,&c); printf("%c%c%c\n",a[0]-32,b[0]-32,c[0]-32); return 0; }
それぞれ1文字目だけ出力。
B - Comparison
C++!4
#include<bits/stdc++.h> using namespace std; int main(){ char a[102],b[102]; scanf("%s",a); scanf("%s",b); if (strlen(a)>strlen(b)) { printf("GREATER\n"); return 0; } else if (strlen(a)<strlen(b)) { printf("LESS\n"); return 0; } for (int i=0;i<strlen(a);i++) { if (a[i]-0>b[i]-0) { printf("GREATER\n"); return 0; } else if (a[i]-0<b[i]-0) { printf("LESS\n"); return 0; } } printf("EQUAL\n"); return 0; }
先頭0があり得ないので文字列長で判定か、同じ長さなら先頭から差分が出るまで比較。
C - Sequence
Python3
n=int(input()) l=[int(i) for i in input().split()] chk1=ans1=chk2=ans2=0 for a,i in enumerate(l): chk1+=i chk2+=i if a%2: if chk1<=0: ans1+=1-chk1 chk1=1 if chk2>=0: ans2+=chk2+1 chk2=-1 else: if chk1>=0: ans1+=1+chk1 chk1=-1 if chk2<=0: ans2+=1-chk2 chk2=1 print(min(ans1,ans2))
加工先を+-+-...にするか、-+-+...にするかでシミュ。符号を変えるときは最小操作回数のために+1 or -1想定で。