记录编号 91361 评测结果 AAAAAAAAAA
题目名称 [NOIP 2012]寻宝 最终得分 100
用户昵称 GravatarHouJikan 是否通过 通过
代码语言 C++ 运行时间 0.925 s
提交时间 2014-03-13 21:10:22 内存使用 4.13 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>

using namespace std;
int room [10001][101];
bool up[10001][101];
int sumstair[10001];
long long sum=0;
int main()
{
    freopen("treasures.in","r",stdin);
    freopen("treasures.out","w",stdout);
    int floor,roomnum;
    memset(sumstair,0,sizeof(sumstair));
    memset(up,0,sizeof(up));
    scanf("%d%d",&floor,&roomnum);
    for(int a=1;a<=floor;a++)
        for(int k=0;k<roomnum;k++)    
        {  
          scanf("%d%d",&up[a][k],&room[a][k]);
          if (up[a][k])
            sumstair[a]++;
        }
    int nowf=1;
    int nowr;
    scanf("%d",&nowr);
    while (nowf!=floor+1)
    {
          sum+=room[nowf][nowr];
       int k=room[nowf][nowr];
       if (k%sumstair[nowf]==0)
         k=sumstair[nowf];
       else
         k=k%sumstair[nowf];
       nowr--;
       while(k!=0)
       {
         nowr++;
         if (nowr==roomnum)
           nowr=0;
         if (up[nowf][nowr])
           k--;
       }
       nowf++;
    }
    printf("%lld",sum%20123);
    //system("pause");
    return 0;
}