開始して問題を開きますが、なかなかつながらず、この段階でやる気をなくしましたが、とりあえず3分ほどするとみえたのでProblem A。8分にPretest Passed.以前よりはマシになったか。
ですが、次のProblem Bで泥沼にはまり、全く解けなくなってしまいます。他の問題を見ても題意がわからないか、すぐに組めそうにないものばかり。仕方がないので再度Problem Bを叩きます。1時間50分でようやくPretest Passed.これで今回は終わりです。
487/1121,486点でした。問題はこちら。
A.
#include<stdio.h>
#include<string.h>
int main(void){
char str[128];
int count=1;
int i,j;
scanf("%s",str);
for(i=1;i<strlen(str);i++){
if(str[i]==str[i-1]){
count++;
}else{
count=1;
}
if(count>=7){
puts("YES");
return 0;
}
}
puts("NO");
return 0;
}
B.(誤答)
#include<stdio.h>
#include<math.h>
#include<string.h>
typedef unsigned int u_int;
int main(void){
u_int i,j,k,keta,c4=0,c7=0,forward;
char num[16];
scanf("%s",num);
keta=strlen(num);
if(keta%2==1){
keta++;
for(i=0;i<keta/2;i++) putchar('4');
for(i=0;i<keta/2;i++) putchar('7');
putchar('\n');
return 0;
}
for(i=0;i<strlen(num);i++){
//printf("for at num[%u]=%c \n",i,num[i]);
if(num[i]=='4'){
c4++;
if(c4>keta/2){
num[i]='7';
c4--;
c7++;
}
continue;
}else if(num[i]=='7'){
c7++;
if(c7>keta/2){
for(j=i;j>=0;j--){
if(j==0){
keta+=2;
for(k=0;k<keta/2;k++) putchar('4');
for(k=0;k<keta/2;k++) putchar('7');
putchar('\n');
return 0;
}
if(num[j]=='4'){
num[j]='7';
c4--;
c7++;
break;
}else if(num[j]=='7'){
num[j]='4';
c4++;
c7--;
}
}
}
//puts("continue at7");
continue;
}
if(num[i]<='3'){
for(j=0;j<i;j++) putchar(num[j]);
for(j=0;j<keta/2-c4;j++) putchar('4');
for(j=0;j<keta/2-c7;j++) putchar('7');
putchar('\n');
return 0;
}else if(num[i]<='6'){
num[i]='7';
c7++;
if(c7>keta/2){
for(j=i;j>=0;j--){
if(j==0){
keta+=2;
for(k=0;k<keta/2;k++) putchar('4');
for(k=0;k<keta/2;k++) putchar('7');
putchar('\n');
return 0;
}
if(num[j]=='4'){
num[j]='7';
c4--;
c7++;
break;
}else if(num[j]=='7'){
num[j]='4';
c4++;
c7--;
}
}
}
for(j=0;j<=i;j++) putchar(num[j]);
for(j=0;j<keta/2-c4;j++) putchar('4');
for(j=0;j<keta/2-c7;j++) putchar('7');
putchar('\n');
return 0;
}else{
for(j=i;j>=0;j--){
if(j==0){
keta+=2;
for(k=0;k<keta/2;k++) putchar('4');
for(k=0;k<keta/2;k++) putchar('7');
putchar('\n');
return 0;
}
if(num[j]=='4'){
num[j]='7';
c4--;
c7++;
break;
}else if(num[j]=='7'){
num[j]='4';
c4++;
c7--;
}
}
for(j=0;j<i;j++) putchar(num[j]);
putchar('4');
c4++;
for(j=0;j<keta/2-c4;j++) putchar('4');
for(j=0;j<keta/2-c7;j++) putchar('7');
putchar('\n');
return 0;
}
}
puts(num);
return 0;
}
0 件のコメント:
コメントを投稿