제출 #1357961

#제출 시각아이디문제언어결과실행 시간메모리
1357961MMihalevNavigation 2 (JOI21_navigation2)C++20
컴파일 에러
0 ms0 KiB
#include "Anna.h"
#include <vector>

namespace {

int f(int r, int c, int x,int y)
{
    if(r%3==0 && c%3==0)return 14;

    if(x==r-1 && y==c-1)return 1;
    if(x==r-1 && y==c)return 2;
    if(x==r-1 && y==c+1)return 3;
    if(x==r && y==c-1)return 4;
    if(x==r && y==c)return 5;
    if(x==r && y==c+1)return 6;
    if(x==r+1 && y==c-1)return 7;
    if(x==r+1 && y==c)return 8;
    if(x==r+1 && y==c+1)return 9;

    if(y>c)return 10;
    if(y<c)return 11;
    if(x>r)return 12;
    if(x<r)return 13;
}

}

void Anna(int N, int K, std::vector<int> R, std::vector<int> C)
{
  for (int r = 0; r < N; r++) {
    for (int c = 0; c < N; c++) {
      int x=-1,y=-1;
      if(r%3==0 && c%3==1){x=R[0];y=R[0];}
      if(r%3==0 && c%3==2){x=R[1];y=R[1];}
      if(r%3==1 && c%3==0){x=R[2];y=R[2];}
      if(r%3==1 && c%3==1){x=R[3];y=R[3];}
      if(r%3==1 && c%3==2){x=R[4];y=R[4];}
      if(r%3==2 && c%3==0){x=R[5];y=R[5];}
      if(r%3==2 && c%3==1){x=R[6];y=R[6];}
      SetFlag(r, c, f(r, c, x,y));
    }
  }
}
#include "Bruno.h"
#include <vector>

namespace
{
    int position(int r,int c)
    {
          if(r%3==0 && c%3==1)return 0;
          if(r%3==0 && c%3==2)return 1;
          if(r%3==1 && c%3==0)return 2;
          if(r%3==1 && c%3==1)return 3;
          if(r%3==1 && c%3==2)return 4;
          if(r%3==2 && c%3==0)return 5;
          if(r%3==2 && c%3==1)return 6;
    }

    int dir(int r,int c,int x,int y)
    {
        if(y>c)return 0;
        if(y<c)return 1;
        if(x>r)return 2;
        if(x<r)return 3;
        return 4;
    }
}

std::vector<int> Bruno(int K, std::vector<int> value)
{
    vector<int>ans(7);

    int sz=0;
    int initx,inity;
    for(int r=0;r<3;r++)
    {
        for(int c=0;c<3;c++)
        {
            int val=value[sz++];

            if(val==14){initx=r;inity=c;break;}
        }
    }


    sz=0;
    for(int r=0;r<3;r++)
    {
        for(int c=0;c<3;c++)
        {
            int val=value[sz++];

            if(initx==r && inity==c)continue;

            int pos=position((r-initx+3)%3,(c-inity+3)%3);

            if(val>=10)
            {
                ans[pos]=val-10;
                continue;
            }

            int times=val;

            for(int dx=0;dx<3;dx++)
            {
                for(int dy=0;dy<3;dy++)
                {
                    times--;
                    if(times==0)
                    {
                        int nr=r+dx,nc=c+dy;

                        ans[pos]=dir(1,1,nr,nc);

                        break;
                    }
                }
            }
        }
    }

    return ans;
}

컴파일 시 표준 에러 (stderr) 메시지

# 1번째 컴파일 단계

Anna.cpp: In function 'int {anonymous}::f(int, int, int, int)':
Anna.cpp:24:1: warning: control reaches end of non-void function [-Wreturn-type]
   24 | }
      | ^

# 2번째 컴파일 단계

Bruno.cpp: In function 'std::vector<int> Bruno(int, std::vector<int>)':
Bruno.cpp:29:5: error: 'vector' was not declared in this scope
   29 |     vector<int>ans(7);
      |     ^~~~~~
Bruno.cpp:29:5: note: suggested alternatives:
In file included from /usr/include/c++/13/vector:66,
                 from Bruno.h:1,
                 from Bruno.cpp:1:
/usr/include/c++/13/bits/stl_vector.h:428:11: note:   'std::vector'
  428 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
/usr/include/c++/13/vector:86:13: note:   'std::pmr::vector'
   86 |       using vector = std::vector<_Tp, polymorphic_allocator<_Tp>>;
      |             ^~~~~~
Bruno.cpp:29:12: error: expected primary-expression before 'int'
   29 |     vector<int>ans(7);
      |            ^~~
Bruno.cpp:57:17: error: 'ans' was not declared in this scope
   57 |                 ans[pos]=val-10;
      |                 ^~~
Bruno.cpp:72:25: error: 'ans' was not declared in this scope
   72 |                         ans[pos]=dir(1,1,nr,nc);
      |                         ^~~
Bruno.cpp:81:12: error: 'ans' was not declared in this scope
   81 |     return ans;
      |            ^~~
Bruno.cpp: In function 'int {anonymous}::position(int, int)':
Bruno.cpp:15:5: warning: control reaches end of non-void function [-Wreturn-type]
   15 |     }
      |     ^