만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

결정 장애

시간 제한3초메모리 제한1024 MB

요약
N × M 격자의 각 칸에서 최소화와 최대화가 번갈아 진행되는 게임의 결과 효용을 구하고, 모든 칸의 합을 998244353으로 나눈 나머지를 출력합니다.
난이도

어려움10점 중 9점

유형
게임 이론, 동적 계획법, 수학, 정렬
정답자
아직 제출이 없습니다

문제

Nikolaj는 N×MN \times M 크기의 격자로 이루어진 도시에 산다. 행은 1부터 NN까지, 열은 1부터 MM까지 번호가 매겨져 있다. 행 rr, 열 cc에 있는 칸은 (r,c)(r, c)로 적는다. Nikolaj는 일자리가 없어서 KK개 회사에서 제안을 받았다. ii번째 회사의 사무실은 칸 (ri,ci)(r_i, c_i)에 있으며, 같은 칸에 사무실이 두 개 있는 경우는 없다. Nikolaj는 이 칸 중 하나에 들어가기만 하면, 그 칸에 사무실이 있는 회사에 바로 채용된다. 어느 칸으로 갈지 정하기 위해 각 일자리의 효용을 잰다. 효용은 −109-10^9 이상 10910^9 이하의 정수이며, 그 일을 하면 Nikolaj에게 얼마나 이로운지를 나타낸다. 집에서 아무것도 하지 않는 경우의 효용은 00이다.

Nikolaj는 (r,c)(r, c) 칸에서 출발하며, 처음에는 효용을 최소화하려고 한다. 매초 (r+1,c)(r+1, c) 또는 (r,c+1)(r, c+1) 중 한 칸으로 이동한다. 한 칸 이동할 때마다 마음이 바뀌어 이번에는 효용을 최대화하려고 한다. 이렇게 최소화와 최대화가 번갈아 반복된다. 과정은 Nikolaj가 사무실 칸에 도달하거나 격자 밖으로 벗어날 때까지 계속된다. 모든 사무실을 지나쳐 격자 밖으로 나가면 일자리를 얻지 못하고 효용은 00이 된다.

Nikolaj는 이동할 때마다 현재 목표에 가장 맞는 칸을 고르며, 다른 성격이 어떻게 행동할지도 알고 있다. 두 성격이 서로 겨루는 게임으로 생각해도 된다. 출발 칸이 사무실이면 곧바로 그곳에 채용된다.

N(r,c)N(r, c)를 Nikolaj가 (r,c)(r, c)에서 출발했을 때 얻는 효용이라 하자. NMNM개 칸 전체에 대해 N(r,c)N(r, c)의 합을 구하라. 결과는 998244353998244353으로 나눈 나머지를 출력한다.

입력

첫 줄에 정수 NN, MM, KK가 주어진다 (1≤N,M≤1091 \leq N,M \leq 10^9, 1≤K≤min⁡(NM,105)1 \leq K \leq \min(NM, 10^5)).

이어지는 KK개 줄에는 정수 rir_i, cic_i, viv_i가 주어진다. 이는 ii번째 회사의 사무실이 칸 (ri,ci)(r_i, c_i)에 있고, 그 일자리의 효용이 viv_i라는 뜻이다 (1≤ri≤N1 \leq r_i \leq N, 1≤ci≤M1 \leq c_i \leq M, −109≤vi≤109-10^9 \leq v_i \leq 10^9).

출력

NMNM개 칸 모두에 대해 최종 효용의 합을 구하고, 998244353998244353으로 나눈 나머지를 정수 하나로 출력한다.

예제2

  1. 예제 1

    입력
    3 3 3
    2 3 -2
    3 1 3
    1 2 1
    
    예상 출력
    998244352
    
  2. 예제 2

    입력
    2 4 3
    1 2 2
    2 4 -3
    2 1 1
    
    예상 출력
    998244348