提交时间:2021-05-11 21:35:32

运行 ID: 19189

#include<bits/stdc++.h> using namespace std; int n,r[101],a[101][10],sum; int isDown(int x,int y){//x为列号,y为行号 int flag=0; for(int i=1;i<=x-1;i++){//i为列号 if(a[y][i]){ flag=1; break; } } if(!flag) return 0; for(int i=n;i>=x+1;i--){ if(a[y][i]){ return 1; } } } int main(){ cin>>n>>r[1]; for(int i=2;i<=n;i++){//i为列号 r[i]=(r[i-1]*6807+2831)%201701; r[i-1]%=10; for(int j=1;j<=r[i-1];j++){//j为行号 a[j][i-1]=1; } if(i==n){ r[i]%=10; for(int j=1;j<=r[i];j++){ a[j][i]=1; } } } for(int i=2;i<=n-1;i++){ for(int j=1;j<=9;j++){//i为列号,j为行号 if(!a[j][i]){ if(isDown(i,j)){ sum++; }else break; } } } cout<<sum; return 0; }