AtCoder Typical Contest 001

Submission #1177725

Source codeソースコード

#pragma GCC target ("arch=sandybridge")

#include <unistd.h>
#include <string.h>
#include <stdio.h>

char ibuf[250600];
char *ibufe = ibuf-1;

void readall(){
  int k, t = 0;
  while((k=read(STDIN_FILENO, ibuf+t, sizeof(ibuf)-t))>0) t += k;
}

int read_uint(){
  int x=0;
  while(*(++ibufe) <'0');
  do {
    x *= 10;
    x += *ibufe-'0';
  } while(*(++ibufe) >='0');

  return x;
}

char read_char(){
  return *(++ibufe);
}

char buf[5];
char *bufe = buf;

void write_yesno(int b){
  if(b){
    *bufe++ = 'Y';
    *bufe++ = 'e';
    *bufe++ = 's';
  }
  else {
    *bufe++ = 'N';
    *bufe++ = 'o';
  }
  *bufe++ = '\n';
}

void flush(){
  write(STDOUT_FILENO, buf, bufe-buf);
}

int tree[250000];

int root(int i){
  if(tree[i]<0) return i;
  return tree[i] = root(tree[i]);
}

void unite(int i, int j){
  int ri = root(i);
  int rj = root(j);
  if(ri == rj) return;
  if(tree[ri] == tree[rj]){
    tree[rj] = ri;
    tree[ri]--;
  }
  else if(tree[ri] < tree[rj])
    tree[rj] = ri;
  else
    tree[ri] = rj;
}

int main(){
  int h, w, i, j, s, g, m;
  memset(tree, -1, sizeof(tree));
  readall();
  h = read_uint();
  w = read_uint();
  m = 0;
  for(i=0;i<h;i++){
    int oc;
    for(j=0;j<w;j++){
      char c = read_char();
      if(c=='s') s = m;
      else if(c=='g') g = m;
      if(c!='#'){
        if(i) unite(m-w, m);
        if(j && oc) unite(m-1, m);
        oc = 1;
      }
      else oc = 0;
      m++;
    }
    read_char();
  }

  write_yesno(root(s) == root(g));
  flush();

  return 0;
}

Submission

Task問題 A - 深さ優先探索
User nameユーザ名 ryuhei
Created time投稿日時
Language言語 C (GCC 5.4.1)
Status状態 AC
Score得点 100
Source lengthソースコード長 1607 Byte
File nameファイル名
Exec time実行時間 5 ms
Memory usageメモリ使用量 1408 KB

Compiler messageコンパイルメッセージ

./Main.c: In function ‘flush’:
./Main.c:47:3: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result [-Wunused-result]
write(STDOUT_FILENO, buf, bufe-buf);
^

Test case

Set

Set name Score得点 / Max score Cases
Sample - 00_sample_01.txt,00_sample_02.txt,00_sample_03.txt,00_sample_04.txt,00_sample_05.txt
All 100 / 100 00_min_01.txt,00_min_02.txt,00_min_03.txt,00_min_04.txt,00_min_05.txt,00_min_06.txt,00_min_07.txt,00_min_08.txt,00_sample_01.txt,00_sample_02.txt,00_sample_03.txt,00_sample_04.txt,00_sample_05.txt,01_rnd_00.txt,01_rnd_01.txt,01_rnd_02.txt,01_rnd_03.txt,01_rnd_04.txt,01_rnd_05.txt,01_rnd_06.txt,01_rnd_07.txt,01_rnd_08.txt,01_rnd_09.txt,01_rnd_10.txt,01_rnd_11.txt,01_rnd_12.txt,01_rnd_13.txt,01_rnd_14.txt,01_rnd_15.txt,01_rnd_16.txt,01_rnd_17.txt,01_rnd_18.txt,01_rnd_19.txt,02_rndhard_00.txt,02_rndhard_01.txt,02_rndhard_02.txt,02_rndhard_03.txt,02_rndhard_04.txt,02_rndhard_05.txt,02_rndhard_06.txt,02_rndhard_07.txt,02_rndhard_08.txt,02_rndhard_09.txt,02_rndhard_10.txt,02_rndhard_11.txt,02_rndhard_12.txt,02_rndhard_13.txt,02_rndhard_14.txt,02_rndhard_15.txt,02_rndhard_16.txt,02_rndhard_17.txt,02_rndhard_18.txt,02_rndhard_19.txt,02_rndhard_20.txt,02_rndhard_21.txt,02_rndhard_22.txt,02_rndhard_23.txt,02_rndhard_24.txt,02_rndhard_25.txt,02_rndhard_26.txt,02_rndhard_27.txt,02_rndhard_28.txt,02_rndhard_29.txt,02_rndhard_30.txt,02_rndhard_31.txt,02_rndhard_32.txt,02_rndhard_33.txt,02_rndhard_34.txt,02_rndhard_35.txt,02_rndhard_36.txt,02_rndhard_37.txt,02_rndhard_38.txt,02_rndhard_39.txt,03_rndhardsmall_00.txt,03_rndhardsmall_01.txt,03_rndhardsmall_02.txt,03_rndhardsmall_03.txt,03_rndhardsmall_04.txt,03_rndhardsmall_05.txt,03_rndhardsmall_06.txt,03_rndhardsmall_07.txt,03_rndhardsmall_08.txt,03_rndhardsmall_09.txt

Test case

Case name Status状態 Exec time実行時間 Memory usageメモリ使用量
00_min_01.txt AC 1 ms 1152 KB
00_min_02.txt AC 1 ms 1152 KB
00_min_03.txt AC 1 ms 1152 KB
00_min_04.txt AC 1 ms 1152 KB
00_min_05.txt AC 1 ms 1152 KB
00_min_06.txt AC 1 ms 1152 KB
00_min_07.txt AC 1 ms 1152 KB
00_min_08.txt AC 1 ms 1152 KB
00_sample_01.txt AC 1 ms 1152 KB
00_sample_02.txt AC 1 ms 1152 KB
00_sample_03.txt AC 1 ms 1152 KB
00_sample_04.txt AC 1 ms 1152 KB
00_sample_05.txt AC 1 ms 1152 KB
01_rnd_00.txt AC 1 ms 1408 KB
01_rnd_01.txt AC 5 ms 1408 KB
01_rnd_02.txt AC 5 ms 1408 KB
01_rnd_03.txt AC 5 ms 1408 KB
01_rnd_04.txt AC 5 ms 1408 KB
01_rnd_05.txt AC 4 ms 1408 KB
01_rnd_06.txt AC 5 ms 1408 KB
01_rnd_07.txt AC 5 ms 1408 KB
01_rnd_08.txt AC 2 ms 1408 KB
01_rnd_09.txt AC 3 ms 1408 KB
01_rnd_10.txt AC 4 ms 1408 KB
01_rnd_11.txt AC 1 ms 1408 KB
01_rnd_12.txt AC 5 ms 1408 KB
01_rnd_13.txt AC 5 ms 1408 KB
01_rnd_14.txt AC 4 ms 1408 KB
01_rnd_15.txt AC 5 ms 1408 KB
01_rnd_16.txt AC 1 ms 1408 KB
01_rnd_17.txt AC 5 ms 1408 KB
01_rnd_18.txt AC 2 ms 1408 KB
01_rnd_19.txt AC 5 ms 1408 KB
02_rndhard_00.txt AC 4 ms 1408 KB
02_rndhard_01.txt AC 4 ms 1408 KB
02_rndhard_02.txt AC 4 ms 1408 KB
02_rndhard_03.txt AC 4 ms 1408 KB
02_rndhard_04.txt AC 4 ms 1408 KB
02_rndhard_05.txt AC 5 ms 1408 KB
02_rndhard_06.txt AC 4 ms 1408 KB
02_rndhard_07.txt AC 4 ms 1408 KB
02_rndhard_08.txt AC 4 ms 1408 KB
02_rndhard_09.txt AC 4 ms 1408 KB
02_rndhard_10.txt AC 4 ms 1408 KB
02_rndhard_11.txt AC 4 ms 1408 KB
02_rndhard_12.txt AC 4 ms 1408 KB
02_rndhard_13.txt AC 4 ms 1408 KB
02_rndhard_14.txt AC 4 ms 1408 KB
02_rndhard_15.txt AC 4 ms 1408 KB
02_rndhard_16.txt AC 4 ms 1408 KB
02_rndhard_17.txt AC 4 ms 1408 KB
02_rndhard_18.txt AC 4 ms 1408 KB
02_rndhard_19.txt AC 4 ms 1408 KB
02_rndhard_20.txt AC 4 ms 1408 KB
02_rndhard_21.txt AC 4 ms 1408 KB
02_rndhard_22.txt AC 4 ms 1408 KB
02_rndhard_23.txt AC 4 ms 1408 KB
02_rndhard_24.txt AC 4 ms 1408 KB
02_rndhard_25.txt AC 5 ms 1408 KB
02_rndhard_26.txt AC 4 ms 1408 KB
02_rndhard_27.txt AC 4 ms 1408 KB
02_rndhard_28.txt AC 4 ms 1408 KB
02_rndhard_29.txt AC 4 ms 1408 KB
02_rndhard_30.txt AC 4 ms 1408 KB
02_rndhard_31.txt AC 4 ms 1408 KB
02_rndhard_32.txt AC 4 ms 1408 KB
02_rndhard_33.txt AC 4 ms 1408 KB
02_rndhard_34.txt AC 4 ms 1408 KB
02_rndhard_35.txt AC 4 ms 1408 KB
02_rndhard_36.txt AC 4 ms 1408 KB
02_rndhard_37.txt AC 4 ms 1408 KB
02_rndhard_38.txt AC 4 ms 1408 KB
02_rndhard_39.txt AC 4 ms 1408 KB
03_rndhardsmall_00.txt AC 1 ms 1152 KB
03_rndhardsmall_01.txt AC 1 ms 1152 KB
03_rndhardsmall_02.txt AC 1 ms 1152 KB
03_rndhardsmall_03.txt AC 1 ms 1152 KB
03_rndhardsmall_04.txt AC 1 ms 1152 KB
03_rndhardsmall_05.txt AC 1 ms 1152 KB
03_rndhardsmall_06.txt AC 1 ms 1152 KB
03_rndhardsmall_07.txt AC 1 ms 1152 KB
03_rndhardsmall_08.txt AC 1 ms 1152 KB
03_rndhardsmall_09.txt AC 1 ms 1152 KB