結果
問題 | No.491 10^9+1と回文 |
ユーザー |
|
提出日時 | 2017-04-09 00:56:04 |
言語 | C++11 (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,236 bytes |
コンパイル時間 | 124 ms |
コンパイル使用メモリ | 25,344 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-07-17 23:58:57 |
合計ジャッジ時間 | 2,264 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 42 WA * 61 |
ソースコード
#include <stdio.h> #include <stdlib.h> #include <string.h> #define READ_BUFSIZE ( 128 ) #define READ_DELIMITER ( " " ) //標準入力取得(1行) int GetStdin( char* pszStr, int lMaxLen ) { int lLen = 0; memset( pszStr, 0, lMaxLen ); if( fgets( pszStr, lMaxLen, stdin ) ) { lLen = strlen( pszStr ); if( lLen >= 1 ) { if( pszStr[ lLen - 1 ] == 0x0A ) { pszStr[ lLen - 1 ] = 0; lLen--; } } } return( lLen ); } int main(int argc, char *argv[]) { char szRead[READ_BUFSIZE] = ""; //char* psOutbuf[10000] = { 0 }; int lInput[4] = {0}; GetStdin( szRead, READ_BUFSIZE ); long long int base = 1000000001; //long long int base = 10001; long long int max = strtoull( szRead, 0, 0 ); //long long int max = strtoul( szRead, 0, 0 ); if( max < base ) { printf( "0\n" ); return 0 ; } int i = max / base; char temp[16] = ""; sprintf( temp, "%d", i ); int keta = strlen( temp ); int count = 0; count += (keta-1) *9; char temp2[16] = ""; for( int j = 0; j < keta; j++ ) { temp2[j] = temp[0]; } int k = atoi( temp2 ); memset( temp2+1, 0,sizeof( temp2 )-1 ); count += atoi( temp2 ); if( i < k ) count--; printf( "%d\n", count ); return 0; }