제출 #1355084

#제출 시각아이디문제언어결과실행 시간메모리
1355084sanoChess Rush (CEOI20_chessrush)C++20
28 / 100
2100 ms260036 KiB
#include <bits/stdc++.h>
#define P vector
#define F(i, n) for(l i = 0; i < n; i++)
#define l long long
using namespace std;
l r, c, q, x, y; 
P<P<l>> C(P<P<l>>& a, P<P<l>>&b){
    P<P<l>> v(c, P<l>(c, 0));
    F(i, c) F(j, c) F(k, c) v[i][j] = (v[i][j] + a[i][k] * b[k][j]) % 1000000007;
    return v;
}
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin >> r >> c >> q; r--;
    P<P<l>> m[32];
    F(i, 32) m[i].assign(c, P<l>(c, 0));
    F(i, c) F(j, c) if(abs(i-j) <= 1) m[0][i][j] = 1;
    F(i, 31) m[i+1] = C(m[i], m[i]);
    P<P<l>> z(c, P<l>(c, 0));
    F(i, c) z[i][i] = 1;
    F(i, 32) if(r & (1<<i)) z = C(z, m[i]);
    F(i, q){
        char t; cin >> t >> x >> y; x--;y--;
        cout << r << ' ' << z[x][y] << endl;
    }
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…