AtCoder Beginner Contest 084

はい。
https://atcoder.jp/contests/abc084

A - New Year

Python3

print(24+(24-int(input())))

なんとか計算する。

B - Cakes and Donuts

C++14

#include<bits/stdc++.h>
using namespace std;
 
int main(){
    int a,b;
    scanf("%d %d",&a,&b);
    char s[a+b+5];
    scanf("%s",s);
    for (int i=0;i<(a+b+1);i++) {
        if (i==a && isdigit(s[i])) {
            printf("No\n");
            return 0;
        } else if (i!=a && isdigit(s[i])==false) {
            printf("No\n");
            return 0;
        }
    }
    printf("Yes\n");
    return 0;
}

問題文の言いなりになって文字を調べる。

C - Special Trains

Python3

n=int(input())
c=[]
for i in range(n-1):
    x,y,z=map(int,input().split())
    c.append((x,y,z))
for i in range(n-1):
    ans=0
    for j in range(i,n-1):
        ans=[c[j][1]+((ans-c[j][1]+c[j][2]-1)//c[j][2])*c[j][2],c[j][1]][ans<c[j][1]]
        ans+=c[j][0]
    print(ans)
ans=chk=0
print(ans)

全部シミュする出発以降の途中の駅ではS秒の時にか、S+F*n秒みたいになるので計算する。最大でNが500はそれほど大きくないし、調べる駅数はどんどん減っていくので全部シミュして調べる。

D - 2017-like Number

Python3

def prime_t(t):
    i=2
    while i**2<=t:
        if t%i==0:
            return 0
        i+=1
    return 1
d=set([])
n=10**5+1
p=[0]*(10**5+1)
for i in range(2,n):
    if prime_t(i):
        d.add(i)
    if (i in d and (i+1)//2 in d): p[i]=p[i-1]+1
    else: p[i]=p[i-1]
 
q=int(input())
for i in range(q):
    ans=0
    l,r=map(int,input().split())
    print(p[r]-p[l-1])

素数素数+1÷2も素数になる箇所を予め数えておく。予め数えておいた通りに入力の区間に合わせて出力する。