Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
20751 | 杨晓铮 | 印度国王的棋盘 | C++ | 通过 | 100 | 0 MS | 248 KB | 973 | 2021-06-20 09:10:39 |
#include<bits/stdc++.h> using namespace std; int l,r,n[110],ans[110]; int main(){ scanf("%d,%d",&l,&r); memset(n,0,sizeof(n)); memset(ans,0,sizeof(ans)); n[1]=1; for(int i=1;i<l;i++){ for(int j=1;j<=100;j++)n[j]=n[j]+n[j]; for(int j=1;j<=100;j++){ if(n[j]>=10){ n[j+1]+=n[j]/10; n[j]=n[j]%10; } // cout<<n[i]; } } for(int i=1;i<=100;i++)ans[i]=n[i]; for(int i=l;i<r;i++){ for(int j=1;j<=100;j++){ n[j]=n[j]+n[j]; } for(int j=1;j<=100;j++){ if(n[j]>=10){ n[j+1]+=n[j]/10; n[j]=n[j]%10; } ans[j]+=n[j]; if(ans[j]>=10){ ans[j+1]+=ans[j]/10; ans[j]=ans[j]%10; } } } for(int i=100;i>=1;i--){ if(ans[i]){ if(i>=6){ // cout<<1<<endl; for(int j=0;j<=2;j++)cout<<ans[i-j]; cout<<","; cout<<ans[3]<<ans[2]<<ans[1]; return 0; } else { // cout<<2<<endl; for(int j=i;j>=1;j--)cout<<ans[j]; return 0; } } } }