はい。
Codeforces Round #409 (rated, Div.2, based on VK Cup 2017 Round 2)
A. Vicious Keyboard
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;++i)
bool f[105];
int main(){
int n,m=0,ans=0;
char s[105];
scanf("%s",s);
long t=strlen(s);
for(long i=0;i<t-1;i++) if (s[i]=='V' && s[i+1]=='K') {f[i]=1; f[i+1]=1;ans++;}
for(long i=0;i<t-1;i++) if ((s[i]=='V' || s[i+1]=='K') && (f[i]==0 && f[i+1]==0)) m=1;
printf("%d\n",ans+m);
return 0;
}
既にVKの箇所は何も変更しません。それ以外で左がVか、右がKになっている箇所が1つ以上あればVKを1つ増やせます。
B. Valued Keys
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0;i<n;++i)
#define sc1(a) scanf("%d",&a)
int main(){
int n,m,ans;
char x[105],y[105];
scanf("%s",x);
scanf("%s",y);
long t=strlen(x);
bool f=1;
for(long i=0;i<t;i++) {
if ((x[i]-'a')<(y[i]-'a')) {
printf("-1\n");
return 0;
}
}
printf("%s\n",y);
return 0;
}
xの方の文字に小さいものがあるとf()を通した出力結果と矛盾する?ので-1、それ以外はyを出力で大丈夫だと思います。。
C. Voltage Keepsake
問題意味わからずnote見てもサンプル理解至らず。また今度。