#include<bits/stdc++.h>usingnamespace std;constint N =10009, M =109;int n, m, a[N][M], num[N][M], qty[N];intmain(){scanf("%d%d",&n,&m);for(int i =1; i <= n; i ++){for(int j =0; j < m; j ++){scanf("%d%d",&a[i][j],&num[i][j]);
qty[i]+= a[i][j];//qty[i]为第i层梯子的个数 }}int j, ans =0;scanf("%d",&j);//j号房间 for(int i =1; i <= n; i ++){
ans =(ans + num[i][j])%20123;//加上j号房间里的数字 int k = num[i][j]% qty[i];if(k ==0) k = qty[i];//在这一层找到第 k 个有梯子的房间 int cnt =0;while(true){if(a[i][j]){
cnt ++;if(cnt == k){break;}}
j =(j +1)% m;//去下一个房间 }}printf("%d\n", ans);return0;}
寻宝#include <bits/stdc++.h>using namespace std;const int N = 10009, M = 109;int n, m, a[N][M], num[N][M], qty[N];int main() { scanf("%d%d",&n, &m); for (int i = 1; i <= n; i ++ ) { for (int j = 0; j < m; j ++ ) { scanf("%d%