結果
問題 | No.241 出席番号(1) |
ユーザー |
![]() |
提出日時 | 2015-07-13 14:08:35 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
CE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 3,998 bytes |
コンパイル時間 | 719 ms |
コンパイル使用メモリ | 94,532 KB |
最終ジャッジ日時 | 2024-11-30 21:30:01 |
合計ジャッジ時間 | 1,471 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.cpp: In member function ‘V MaxFlow_dinic<V>::maxflow(int, int)’: main.cpp:142:35: error: ‘numeric_limits’ was not declared in this scope 142 | while((tf=dfs(from,to,numeric_limits<V>::max()))>0) fl+=tf; | ^~~~~~~~~~~~~~ main.cpp:142:51: error: expected primary-expression before ‘>’ token 142 | while((tf=dfs(from,to,numeric_limits<V>::max()))>0) fl+=tf; | ^ main.cpp:142:57: error: no matching function for call to ‘max()’ 142 | while((tf=dfs(from,to,numeric_limits<V>::max()))>0) fl+=tf; | ~~~~~^~ In file included from /usr/include/c++/11/bits/stl_tree.h:63, from /usr/include/c++/11/map:60, from main.cpp:5: /usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: ‘template<class _Tp> const _Tp& std::max(const _Tp&, const _Tp&)’ 254 | max(const _Tp& __a, const _Tp& __b) | ^~~ /usr/include/c++/11/bits/stl_algobase.h:254:5: note: template argument deduction/substitution failed: main.cpp:142:57: note: candidate expects 2 arguments, 0 provided 142 | while((tf=dfs(from,to,numeric_limits<V>::max()))>0) fl+=tf; | ~~~~~^~ In file included from /usr/include/c++/11/bits/stl_tree.h:63, from /usr/include/c++/11/map:60, from main.cpp:5: /usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: ‘template<class _Tp, class _Compare> const _Tp& std::max(const _Tp&, const _Tp&, _Compare)’ 300 | max(const _Tp& __a, const _Tp& __b, _Compare __comp) | ^~~ /usr/include/c++/11/bits/stl_algobase.h:300:5: note: template argument deduction/substitution failed: main.cpp:142:57: note: candidate expects 3 arguments, 0 provided 142 | while((tf=dfs(from,to,numeric_limits<V>::max
ソースコード
#include <cstdlib>#include <cmath>#include <climits>#include <cfloat>#include <map>#include <set>#include <iostream>#include <string>#include <vector>#include <algorithm>#include <sstream>#include <complex>#include <stack>#include <queue>#include <cstdio>#include <cstring>#include <iterator>#include <bitset>#include <unordered_set>#include <unordered_map>#include <fstream>#include <iomanip>//#include <utility>//#include <memory>//#include <functional>//#include <deque>//#include <cctype>//#include <ctime>//#include <numeric>//#include <list>//#include <iomanip>//#if __cplusplus >= 201103L//#include <array>//#include <tuple>//#include <initializer_list>//#include <forward_list>////#define cauto const auto&//#else//#endifusing namespace std;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;}#undef _P#define _P(...) (void)printf(__VA_ARGS__)#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 DEBUG#ifdef DEBUG#define dump(x) cout << #x << " = " << (x) << endl;#define debug(x) cout << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl;#else#define dump(x)#define debug(x)#endif#define LDcout(x,n) fixed<<setprecision(n)<<x#define MOD 1000000007LL#define EPS 1e-8static const int INF=1<<24;//max flow (dinic)template<class V> class MaxFlow_dinic{public:struct edge{int to,reve;V cap;};static const int MV = 1100;vector<edge> E[MV];int itr[MV],lev[MV];void add_edge(int x,int y,V cap,bool undir=false){E[x].push_back((edge){y,(int)E[y].size(),cap});E[y].push_back((edge){x,(int)E[x].size()-1,undir?cap:0});}void bfs(int cur){memset(lev,0xff,sizeof(lev));queue<int> q;lev[cur]=0;q.push(cur);while(q.size()){int v=q.front();q.pop();for(__typeof(E[v].begin()) e=E[v].begin();e!=E[v].end();e++) if(e->cap>0&&lev[e->to]<0) lev[e->to]=lev[v]+1,q.push(e->to);}}V dfs(int from,int to,V cf){if(from==to){return cf;}for(;itr[from]<E[from].size();itr[from]++){edge* e=&E[from][itr[from]];if(e->cap>0&&lev[from]<lev[e->to]){V f=dfs(e->to,to,min(cf,e->cap));if(f>0){e->cap-=f;E[e->to][e->reve].cap += f;return f;}}}return 0;}V maxflow(int from,int to){V fl=0,tf;while(1){bfs(from);if(lev[to]<0) return fl;memset(itr,0,sizeof(itr));while((tf=dfs(from,to,numeric_limits<V>::max()))>0) fl+=tf;}}};void mainmain(){int n;cin>>n;vint v(n);rep(i,n) cin>>v[i];MaxFlow_dinic<int> mf;int start = 200;int goal = 201;rep(i,n){mf.add_edge(start,i,1);mf.add_edge(i+n,goal,1);}rep(i,n){rep(j,n){if(v[i]==j) continue;mf.add_edge(i,j+n,1);}}int t=mf.maxflow(start,goal);// cout<<t<<endl;if(t!=n){cout<<-1<<endl;}else{vint ans(n);rep(i,n){for(auto j:mf.E[i]){if(j.cap==0){ans[i]=j.to-n;break;}}}rep(i,n){cout<<ans[i]<<endl;}}}signed main() {ios_base::sync_with_stdio(false);cout<<fixed<<setprecision(0);mainmain();}