結果

問題 No.528 10^9と10^9+7と回文
ユーザー Nasatame
提出日時 2017-06-09 23:58:17
言語 C++11(廃止可能性あり)
(gcc 13.3.0)
結果
WA  
実行時間 -
コード長 1,122 bytes
コンパイル時間 564 ms
コンパイル使用メモリ 58,508 KB
実行使用メモリ 6,948 KB
最終ジャッジ日時 2024-09-22 20:25:00
合計ジャッジ時間 1,559 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 8 WA * 20
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
 
using ll = unsigned long long int;
 
ll mod0 = 1000000000LL;
ll mod7 = 1000000007LL;
 
int main(void){
    
    string s;
    cin >> s;
    
    ll ans0 = 0,ans7 = 0,tmp0 = 9,tmp7 = 9;
    
    for(int i = 0; i < s.size()-1; i ++){
        if(!(i%2) && i >= 2) tmp0 *= 10;
        if(!(i%2) && i >= 2) tmp7 *= 10;
        
        tmp0 %= mod0;
        tmp7 %= mod7;
        
        ans0 += tmp0;
        ans7 += tmp7;
        
        ans0 %= mod0;
        ans7 %= mod7;
        
        //cout << ans0 << endl;
    }
    
    for(int i = 0; i < (s.size()+1)/2; i++){
        int a = min(s[i]-'0',s[s.size()-(i+1)]-'0');
        
        if(i == 0){
            tmp0 = a;
            tmp7 = a;
        }else{
            
            a += 1;
            
            tmp0 *= a;
            tmp7 *= a;
            
        }
        
        tmp0 %= mod0;
        tmp7 %= mod7;
    }
    
    ans0 += tmp0;
    ans7 += tmp7;
    
    ans0 %= mod0;
    ans7 %= mod7;
    
    cout << ans0 << endl;
    cout << ans7 << endl;
    
    
    
}
0