結果
問題 | No.443 GCD of Permutation |
ユーザー |
|
提出日時 | 2016-11-12 11:36:42 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 1,000 ms |
コード長 | 1,946 bytes |
コンパイル時間 | 6,027 ms |
コンパイル使用メモリ | 378,076 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-11-25 19:51:58 |
合計ジャッジ時間 | 5,550 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 28 |
ソースコード
#include<bits/stdc++.h>#include <boost/multiprecision/cpp_int.hpp>typedef boost::multiprecision::cpp_int xll;using namespace std;typedef unsigned int uint;typedef long long int ll;typedef unsigned long long int ull;#define debugv(v) printf("L%d %s => ",__LINE__,#v);for(auto e:v){cout<<e<<" ";}cout<<endl;#define debugm(m) printf("L%d %s is..\n",__LINE__,#m);for(auto v:m){for(auto e:v){cout<<e<<" ";}cout<<endl;}#define debuga(m,w) printf("L%d %s is => ",__LINE__,#m);for(int x=0;x<(w);x++){cout<<(m)[x]<<" ";}cout<<endl;#define debugaa(m,w,h) printf("L%d %s is..\n",__LINE__,#m);for(int y=0;y<(h);y++){for(int x=0;x<(w);x++){cout<<(m)[x][y]<<" ";}cout<<endl;}#define ALL(v) (v).begin(),(v).end()#define BIGINT 0x7FFFFFFF#define E107 1000000007void printbit(int u){if(u==0)cout<<0;else{int s=0,k=0;for(;0<u;u>>=1,k++)s=(s<<1)|(u&1);for(;0<k--;s>>=1)cout<<(s&1);}}#define TIME chrono::system_clock::now()#define MILLISEC(t) (chrono::duration_cast<chrono::milliseconds>(t).count())template<typename T1,typename T2>ostream& operator <<(ostream &o,const pair<T1,T2> p){o<<"("<<p.first<<":"<<p.second<<")";return o;}int m,n;bool checked[10];int checker;template<typename T>T gcd(T m,T n){if (m < n) return gcd(n,m);T t;while (n>0){t = m % n;m = n;n = t;}return m;}int main(){int i,j,k,l;string str;cin >> str;for (i = 0;i<str.size();i++){k = (int)(str[i]-'0');if (!checked[k]){checked[k]=true;if (9<++checker) break;}}if (checker == 1){cout << str << endl;return 0;}int d = 0;for (i=0;i<9;i++){if (!checked[i]) continue;for (j=i+1;j<10;j++){if (!checked[j]) continue;d = gcd(d,9*(j-i));}}xll res(str);cout << gcd(res,xll(d)) << endl;return 0;}