結果

問題 No.319 happy b1rthday 2 me
ユーザー piyoko_212
提出日時 2015-12-21 19:08:49
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
AC  
実行時間 1 ms / 2,000 ms
コード長 1,351 bytes
コンパイル時間 277 ms
コンパイル使用メモリ 36,944 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-09-18 18:03:57
合計ジャッジ時間 1,318 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 29
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In function ‘int main()’:
main.cpp:55:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   55 |         scanf("%lld%lld",&A,&B);
      |         ~~~~~^~~~~~~~~~~~~~~~~~

ソースコード

diff #
プレゼンテーションモードにする

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
char str[20];
long long dp[20][10][10][2][3];
long long f(long long n){
if(n==0)return 0LL;
sprintf(str,"%lld",n);
int len=strlen(str);
for(int i=0;i<20;i++)for(int j=0;j<10;j++)for(int k=0;k<10;k++)for(int l=0;l<2;l++)for(int m=0;m<3;m++)
dp[i][j][k][l][m]=0;
for(int i=1;i<10;i++){
int tmp=0;
if(i<str[0]-'0')tmp=1;
if(i>str[0]-'0')tmp=2;
dp[1][0][i][i==2][tmp]=1;
}
for(int i=1;i<len;i++){
for(int j=0;j<10;j++){
for(int k=0;k<10;k++){
for(int l=0;l<2;l++)for(int m=0;m<3;m++){
if(!dp[i][j][k][l][m])continue;
for(int r=0;r<10;r++){
int tj=j;
int tm=m;
if(k==1&&r==2)tj++;
if(m==0&&r<str[i]-'0')tm=1;
if(m==0&&r>str[i]-'0')tm=2;
dp[i+1][tj][r][l][tm]+=dp[i][j][k][l][m];
}
}
}
}
}
long long ret=0;
if(n>=2)ret++;
for(int i=1;i<=len;i++){
for(int j=0;j<10;j++){
for(int k=0;k<10;k++){
for(int l=0;l<2;l++)for(int m=0;m<3;m++){
if(i==len&&m==2)continue;
ret+=dp[i][j][k][l][m]*j;
if((m||i!=len)&&l&&k==1){
ret+=dp[i][j][k][l][m];
}
}
}
}
}
return ret;
}
int main(){
long long A,B;
scanf("%lld%lld",&A,&B);
long long ret=f(B)-f(A-1);
if((A-1)%10==1){
long long c=A;
while(c>=10)c/=10;
if(c==2)ret--;
}
printf("%lld\n",ret);
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0