반응형
https://codeforces.com/problemset/problem/1700/A
문제 해결 알고리즘
$n \times m$ 배열이 위의 내용처럼 $a_{ij} = (i-1)m + j$이라면,
최소 경로는 맨위의 행과 맨 오른쪽 열의 합을 더해준 값과 같다.
그러므로 각각의 값을 구한 뒤 겹치는 $a_{1m}$값을 빼주면 최소 경로 값이 나온다.
소스 코드
#include <bits/stdc++.h>
#define ll long long int
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
int t; cin >> t;
ll n, m, result = 0;
while(t--){
result = 0;
cin >> n >> m;
result = m*(m+1)/2 - m;
result += n*(n+1)/2 * m;
cout << result << '\n';
}
}
반응형