結果
問題 |
No.100 直列あみだくじ
|
ユーザー |
![]() |
提出日時 | 2014-12-12 00:03:07 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,489 bytes |
コンパイル時間 | 821 ms |
コンパイル使用メモリ | 90,496 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-11 20:50:27 |
合計ジャッジ時間 | 2,022 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 1 |
other | AC * 22 WA * 23 |
コンパイルメッセージ
main.cpp:153:1: warning: ISO C++ forbids declaration of ‘main’ with no type [-Wreturn-type] 153 | main() try{ | ^~~~
ソースコード
#include <cstdlib> #include <cmath> #include <climits> #include <cfloat> #include <map> //#include <utility> #include <set> #include <iostream> //#include <memory> #include <string> #include <vector> #include <algorithm> //#include <functional> #include <sstream> //#include <deque> #include <complex> #include <stack> #include <queue> #include <cstdio> //#include <cctype> #include <cstring> //#include <ctime> #include <iterator> #include <bitset> //#include <numeric> //#include <list> //#include <iomanip> #if __cplusplus >= 201103L #include <array> #include <tuple> #include <initializer_list> #include <unordered_set> #include <unordered_map> #include <forward_list> #define cauto const auto& #else #endif using namespace std; namespace{ typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef vector<int> vint; typedef vector<vector<int> > vvint; typedef vector<long long> vll, vLL; typedef vector<vector<long long> > vvll, vvLL; #define VV(T) vector<vector< T > > template <class T> void initvv(vector<vector<T> > &v, int a, int b, const T &t = T()){ v.assign(a, vector<T>(b, t)); } template <class F, class T> void convert(const F &f, T &t){ stringstream ss; ss << f; ss >> t; } #define reep(i,a,b) for(int i=(a);i<(b);++i) #define rep(i,n) reep((i),0,(n)) #define ALL(v) (v).begin(),(v).end() #define PB push_back #define F first #define S second #define mkp make_pair #define RALL(v) (v).rbegin(),(v).rend() #define MOD 1000000007LL #define EPS 1e-8 static const int INF=1<<24; vint used; // vint a(n); vint a; int n; int foo(int x){ if(used[x]){ // bool f=false; rep(i,n){ if(used[i]==0){ return 0; } } return 1; } used[x]=1; int ret=foo(a[x]); used[x]=0; return ret; } void mainmain(){ // int n; cin>>n; a=vint(n); used=vint(n,0); rep(i,n){ cin>>a[i]; a[i]--; } int cnt=0; rep(i,n){ if(a[i]==a[a[a[i]]]){ cnt++; // cout<<"No\n"; // return; } } // cout<<cnt<<endl; if(cnt==2){ cout<<"No\n"; return; } cout<<"Yes\n"; return; int t; rep(i,n){ if(a[i]==i){ used[i]=1; } else t=i; } bool f=true; rep(i,n) if(used[i]==0) f=false; if(f){ cout<<"Yes\n"; return; } rep(i,n){ if(foo(i)){ cout<<"Yes\n"; return; } } cout<<"No\n"; } } main() try{ mainmain(); } catch(...){ }