結果
| 問題 |
No.2649 [Cherry 6th Tune C] Anthem Flower
|
| コンテスト | |
| ユーザー |
沙耶花
|
| 提出日時 | 2024-02-23 21:32:30 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 685 ms / 2,000 ms |
| コード長 | 1,077 bytes |
| コンパイル時間 | 4,319 ms |
| コンパイル使用メモリ | 252,104 KB |
| 最終ジャッジ日時 | 2025-02-19 19:29:30 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 35 |
ソースコード
#include <stdio.h>
#include <bits/stdc++.h>
#include <atcoder/all>
using namespace atcoder;
using mint = modint998244353;
using namespace std;
#define rep(i,n) for (int i = 0; i < (n); ++i)
#define Inf32 1000000001
#define Inf64 1000000000000000001
string get(string S){
reverse(S.begin(),S.end());
string ret = "";
int carry = 1;
rep(i,S.size()){
int t = S[i]-'0' + carry;
if(t>=10)carry = 1;
else carry = 0;
t %= 10;
ret += '0'+t;
}
if(carry)ret += "1";
reverse(ret.begin(),ret.end());
return ret;
}
string Get(string S){
string ret = "";
int carry = 0;
rep(i,S.size()){
int t = carry*10;
t += S[i] - '0';
ret += '0' + (t/2);
carry = t%2;
}
return ret;
}
int main(){
int _t;
cin>>_t;
rep(_,_t){
string N;
cin>>N;
long long M;
cin>>M;
string N2 = get(N);
if((N.back()-'0')%2==0)N = Get(N);
else N2 = Get(N2);
long long X = 0,Y = 0;
rep(i,N.size()){
X *= 10;
X += N[i]-'0';
X %= M;
}
rep(i,N2.size()){
Y *= 10;
Y += N2[i]-'0';
Y %= M;
}
X *= Y;
cout<<X%M<<endl;
}
return 0;
}
沙耶花