公式
E - キーボード/Keyboard 解説 by mechanicalpenciI
最低 \(1\) 文字は与えられるので最初の \(500\) msは必ずかかります。 その上で、問題文で記載されたルールに従って、\(2\leq i\leq K\) ( ただし、\(K\) は\(N\) の桁数 ) 文字目を打つのにかかる時間を加えていきます。これらは for 文と if 文の組み合わせで書く事が出来ます。
#include <bits/stdc++.h>
using namespace std;
int main(void) {
int n;
char a[200010];
int hand[10];
for (int i = 0; i < 10; i++) {
if ((1 <= i) && (i <= 5))hand[i] = 1;
else hand[i] = 0;
}
int ans = 500;
cin >> a;
n = strlen(a);
for (int i = 1; i < n; i++) {
if (a[i - 1] == a[i])ans += 301;
else if (hand[(a[i - 1] - '0')] == hand[(a[i] - '0')])ans += 210;
else ans += 100;
}
cout << ans << endl;
return 0;
}
投稿日時:
最終更新: