记录编号 336829 评测结果 AAAAAAAAAA
题目名称 [NOIP 2012]寻宝 最终得分 100
用户昵称 GravatarMealy 是否通过 通过
代码语言 C++ 运行时间 2.415 s
提交时间 2016-11-03 18:19:53 内存使用 14.64 MiB
显示代码纯文本
#include <cstdio>


using namespace std;

const int nmax=10086;
const int mmax=186;
const int FJ=20123;
const int xmax=1000000;


int n,m;
int start;
int ans;


int F[nmax];//为1的房间数目 
class room
{
public:
	int type;
	int num;
}R[nmax][mmax];


void PreDo()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		for(int j=0;j<m;j++)
		{
			scanf("%d%d",&R[i][j].type,&R[i][j].num);
			if(R[i][j].type==1)
			{
				F[i]++;
			}
		}
	}
	scanf("%d",&start);
}


void Calculate()
{
	
	int last=start;
	for(int i=1;i<=n;i++)
	{
		ans=(ans+R[i][last].num)%FJ;
		int tmp=R[i][last].num-1;
		tmp%=F[i];
		tmp++;
		int cnt=0;
		for(int j=last;j<last+m;j++)
		{
			if(R[i][j%m].type==1)
			{
				cnt++;
			}
			if(cnt==tmp)
			{
				last=j%m;
				break;
			}
		}
	}
	printf("%d\n",ans%FJ);
}
int main()
{
	freopen("treasures.in","r",stdin);
	freopen("treasures.out","w",stdout);
	PreDo();
	Calculate();
	return 0;
}