Submission #1177725


Source Code Expand

Copy
#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 Info

Submission Time
Task A - 深さ優先探索
User ryuhei
Language C (GCC 5.4.1)
Score 100
Code Size 1607 Byte
Status
Exec Time 5 ms
Memory 1408 KB

Compile Error

./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);
   ^

Judge Result

Set Name Score / Max Score Test Cases
Sample 0 / 0 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
Case Name Status Exec Time Memory
00_min_01.txt 1 ms 1152 KB
00_min_02.txt 1 ms 1152 KB
00_min_03.txt 1 ms 1152 KB
00_min_04.txt 1 ms 1152 KB
00_min_05.txt 1 ms 1152 KB
00_min_06.txt 1 ms 1152 KB
00_min_07.txt 1 ms 1152 KB
00_min_08.txt 1 ms 1152 KB
00_sample_01.txt 1 ms 1152 KB
00_sample_02.txt 1 ms 1152 KB
00_sample_03.txt 1 ms 1152 KB
00_sample_04.txt 1 ms 1152 KB
00_sample_05.txt 1 ms 1152 KB
01_rnd_00.txt 1 ms 1408 KB
01_rnd_01.txt 5 ms 1408 KB
01_rnd_02.txt 5 ms 1408 KB
01_rnd_03.txt 5 ms 1408 KB
01_rnd_04.txt 5 ms 1408 KB
01_rnd_05.txt 4 ms 1408 KB
01_rnd_06.txt 5 ms 1408 KB
01_rnd_07.txt 5 ms 1408 KB
01_rnd_08.txt 2 ms 1408 KB
01_rnd_09.txt 3 ms 1408 KB
01_rnd_10.txt 4 ms 1408 KB
01_rnd_11.txt 1 ms 1408 KB
01_rnd_12.txt 5 ms 1408 KB
01_rnd_13.txt 5 ms 1408 KB
01_rnd_14.txt 4 ms 1408 KB
01_rnd_15.txt 5 ms 1408 KB
01_rnd_16.txt 1 ms 1408 KB
01_rnd_17.txt 5 ms 1408 KB
01_rnd_18.txt 2 ms 1408 KB
01_rnd_19.txt 5 ms 1408 KB
02_rndhard_00.txt 4 ms 1408 KB
02_rndhard_01.txt 4 ms 1408 KB
02_rndhard_02.txt 4 ms 1408 KB
02_rndhard_03.txt 4 ms 1408 KB
02_rndhard_04.txt 4 ms 1408 KB
02_rndhard_05.txt 5 ms 1408 KB
02_rndhard_06.txt 4 ms 1408 KB
02_rndhard_07.txt 4 ms 1408 KB
02_rndhard_08.txt 4 ms 1408 KB
02_rndhard_09.txt 4 ms 1408 KB
02_rndhard_10.txt 4 ms 1408 KB
02_rndhard_11.txt 4 ms 1408 KB
02_rndhard_12.txt 4 ms 1408 KB
02_rndhard_13.txt 4 ms 1408 KB
02_rndhard_14.txt 4 ms 1408 KB
02_rndhard_15.txt 4 ms 1408 KB
02_rndhard_16.txt 4 ms 1408 KB
02_rndhard_17.txt 4 ms 1408 KB
02_rndhard_18.txt 4 ms 1408 KB
02_rndhard_19.txt 4 ms 1408 KB
02_rndhard_20.txt 4 ms 1408 KB
02_rndhard_21.txt 4 ms 1408 KB
02_rndhard_22.txt 4 ms 1408 KB
02_rndhard_23.txt 4 ms 1408 KB
02_rndhard_24.txt 4 ms 1408 KB
02_rndhard_25.txt 5 ms 1408 KB
02_rndhard_26.txt 4 ms 1408 KB
02_rndhard_27.txt 4 ms 1408 KB
02_rndhard_28.txt 4 ms 1408 KB
02_rndhard_29.txt 4 ms 1408 KB
02_rndhard_30.txt 4 ms 1408 KB
02_rndhard_31.txt 4 ms 1408 KB
02_rndhard_32.txt 4 ms 1408 KB
02_rndhard_33.txt 4 ms 1408 KB
02_rndhard_34.txt 4 ms 1408 KB
02_rndhard_35.txt 4 ms 1408 KB
02_rndhard_36.txt 4 ms 1408 KB
02_rndhard_37.txt 4 ms 1408 KB
02_rndhard_38.txt 4 ms 1408 KB
02_rndhard_39.txt 4 ms 1408 KB
03_rndhardsmall_00.txt 1 ms 1152 KB
03_rndhardsmall_01.txt 1 ms 1152 KB
03_rndhardsmall_02.txt 1 ms 1152 KB
03_rndhardsmall_03.txt 1 ms 1152 KB
03_rndhardsmall_04.txt 1 ms 1152 KB
03_rndhardsmall_05.txt 1 ms 1152 KB
03_rndhardsmall_06.txt 1 ms 1152 KB
03_rndhardsmall_07.txt 1 ms 1152 KB
03_rndhardsmall_08.txt 1 ms 1152 KB
03_rndhardsmall_09.txt 1 ms 1152 KB