제출 #1358643

#제출 시각아이디문제언어결과실행 시간메모리
1358643MMihalevNavigation 2 (JOI21_navigation2)C++20
0 / 100
0 ms772 KiB
#include "Anna.h"
#include <vector>
#include<iostream>
using namespace std;

namespace {

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

    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+1)return 10;
    if(y<c-1)return 11;
    if(x>r+1)return 12;
    if(x<r-1)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>
#include<iostream>
using namespace std;

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;
          return 7;
    }

    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(pos==7)continue;

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

            int times=val;

            for(int dx=-1;dx<=1;dx++)
            {
                for(int dy=-1;dy<=1;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:27:1: warning: control reaches end of non-void function [-Wreturn-type]
   27 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...