結果
問題 | No.101 ぐるぐる!あみだくじ! |
ユーザー |
![]() |
提出日時 | 2014-12-12 00:26:13 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 5,000 ms |
コード長 | 984 bytes |
コンパイル時間 | 2,032 ms |
コンパイル使用メモリ | 158,312 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-11 20:52:28 |
合計ジャッジ時間 | 2,793 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 37 |
ソースコード
// Enjoy your stay. #include <bits/stdc++.h> #define EPS 1e-9 #define INF 1070000000LL #define MOD 1000000007LL #define fir first #define foreach(it,X) for(auto it=(X).begin();it!=(X).end();it++) #define ite iterator #define mp make_pair #define mt make_tuple #define rep(i,n) rep2(i,0,n) #define rep2(i,m,n) for(int i=m;i<(n);i++) #define pb push_back #define sec second #define sz(x) ((int)(x).size()) using namespace std; typedef istringstream iss; typedef long long ll; typedef pair<ll,ll> pi; typedef stringstream sst; typedef vector<ll> vi; int main(){ cin.tie(0); ios_base::sync_with_stdio(0); int N,K; cin>>N>>K; int p[111]; rep(i,N)p[i] = i; rep(i,K){ int X,Y; cin>>X>>Y; X--; Y--; swap(p[X],p[Y]); } ll ans = 1; int u[111] = {}; rep(i,N)if(u[i] == 0){ int x = i; ll l = 0; while(u[x] == 0){ l++; u[x] = 1; x = p[x]; } ans = ans / __gcd(ans, l) * l; } cout<<ans<<endl; }