프로그램 : 코드 + 데이터
프로세스
스레드 : 프로세스처럼 명령어 한 줄씩 실행하는 기본 단위
호출 스택
std::thread() : 모던 c++의 쓰레드 생성 (운영체제 통일)
대표적 상황
컨텍스트 스위치
void B1981::Solution()
{
int n;
cin >> n;
vvi arr = vvi(n, vi(n));
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
cin >> arr[i][j];
}
}
vvp cache = vvp(n, vp(n, { -1,201 }));
queue<vi> q;
q.push({ 0,0,arr[0][0],arr[0][0] });
cache[0][0] = { arr[0][0],arr[0][0] };
int i, j, mx, mn;
pii dirs[] = {{1,0},{-1,0},{0,-1},{0,1}};
while (!q.empty())
{
vi f = q.front(); q.pop();
i = f[0], j = f[1], mn = f[2], mx = f[3];
if (cache[i][j].second - cache[i][j].first < mx - mn) continue;
for (pii dir : dirs)
{
int newi = i + dir.first;
int newj = j + dir.second;
if (newi < 0 || n <= newi|| newj < 0 || n <= newj) continue;
int newmn = min(arr[i][j], mn);
int newmx = max(arr[i][j], mx);
if (cache[newi][newj].second - cache[newi][newj].first <= newmx - newmn) continue;
cache[newi][newj] = { newmn, newmx };
q.push({ newi,newj,newmn,newmx });
}
}
cout << cache[n - 1][n - 1].second - cache[n-1][n-1].first;
}
1% 틀.
뭔가 문제를 완전히 잘못 생각하고 있는듯? 내일 다시.