2011/07/09

Codeforces Beta Round #77(Div.2) 参戦記

直前までリコーダーアンサンブルコンサートがあり、それに出演した後、食事を経ての戦い。参加しないほうが良いかもしれないと思っていました。そんな中で参加して、当然結果はあまり良く有りませんでした。

開始して問題を開きますが、なかなかつながらず、この段階でやる気をなくしましたが、とりあえず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 件のコメント:

コメントを投稿