結果

問題 No.443 GCD of Permutation
ユーザー BlackHIGBlackHIG
提出日時 2025-01-25 15:52:19
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 2,046 bytes
コンパイル時間 1,447 ms
コンパイル使用メモリ 161,408 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2025-01-25 15:52:22
合計ジャッジ時間 2,777 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3 WA * 1
other AC * 17 WA * 11
権限があれば一括ダウンロードができます
コンパイルメッセージ
main.cpp: In member function ‘void oi::solve()’:
main.cpp:18:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   18 |         scanf("%s",str);
      |         ~~~~~^~~~~~~~~~

ソースコード

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

#include<bits/stdc++.h>
using namespace std;
#define intt long long
#define untt unsigned intt
#define mk make_pair
typedef pair<intt,intt>PII;
typedef pair<double,double>PDD;
inline intt read(){intt x=0,f=1;char ch=getchar();for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;for(;ch<='9'&&ch>='0';ch=getchar())x=x*10+ch-'0'
    ;return x*f;}
inline void prin(intt x){if(x<0)putchar('-'),x=-x;if(x>9)prin(x/10);putchar(x%10+'0');return;}
inline void print(intt x,intt fl){prin(x);if(fl)puts("");else printf(" ");return;}
inline void frein(){freopen("1.in","r",stdin);return;}
inline void freout(){freopen("1.ans","w",stdout);return;}
inline intt power(intt a,intt lx,intt f){intt ans=1;while(lx){if(lx&1)ans=ans*a%f;a=a*a%f;lx>>=1;}return ans%f;}
const intt N=1e6+10,INF=1e16,p=1e9+7;
struct oi{
char str[N];intt a[N];
inline void solve(){
scanf("%s",str);
intt len=strlen(str);
intt fl=1;
for(int i=1;i<len;i++){
if(str[i]!=str[i-1])fl=0;
}
if(fl){
cout<<str<<endl;
return;
}
fl=1;char n=0;
for(int i=0;i<len;i++){
if(str[i]=='0')continue;
if(n!=str[i]&&n!=0)fl=0;
n=str[i];
}
if(fl){
printf("%c\n",n);
return;
}
for(int i=0;i<len;i++)a[i]=str[i]-'0';
intt ans=1;
while(1){
bool fl1=1,fl2=1;
intt cnt=0;
for(int i=0;i<len;i++){
cnt+=a[i];
if(a[i]%2==1)fl1=0;
}
if(cnt%3!=0)fl2=0;
if(fl1==0&&fl2==0){
print(ans,1);return;
}
if(fl1){
for(int i=0;i<len;i++){
a[i]/=2;
}ans*=2;
}
if(fl2){
for(int i=0;i<len;i++){
a[i+1]+=(a[i]%3)*10;
a[i]/=3;
}ans*=3;
}
}
}
}T;
int main(){
T.solve();
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0