제출 #106037

#제출 시각아이디문제언어결과실행 시간메모리
106037username여행하는 상인 (APIO17_merchant)C++14
100 / 100
218 ms2168 KiB
#pragma GCC optimize("O3") #include<stdint.h> #include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/tree_policy.hpp> #include<ext/rope> using namespace __gnu_pbds; using namespace __gnu_cxx; #define VIS(it,con) for(auto it=con.begin();it!=con.end();++it) #define pob pop_back #define pf push_front #define pof pop_front #define MIN(x,y) (x=min(x,(y))) #define MAX(x,y) (x=max(x,(y))) #define mid ((l+r)/2) #define lch (idx*2+1) #define rch (idx*2+2) /*****************************************************************************/ #include<bits/stdc++.h> #define int int_fast64_t using namespace std; typedef pair<int,int> pii; typedef vector<int> VI; #define REP(i,j,k) for(register int i=(j);i<(k);++i) #define RREP(i,j,k) for(register int i=(j)-1;i>=(k);--i) #define ALL(a) a.begin(),a.end() #define MST(a,v) memset(a,(v),sizeof a) #define pb push_back #define F first #define S second #define endl '\n' #define __debug #ifdef __debug #define IOS (void)0 #define de(...) cerr<<__VA_ARGS__ #define ar(a,s,t) {REP(__i,s,t)de(min((int)1e9-1,a[__i])<<' ');de(endl);} #else #define IOS cin.tie(0),cout.tie(0),ios_base::sync_with_stdio(false) #define de(...) (void)0 #define ar(...) (void)0 #endif /***********************************default***********************************/ const int maxn=109,maxm=99e2+9,maxk=1e3+9,inf=1ll<<50; int n,m,k,b[maxn][maxk],s[maxn][maxk],t[maxn][maxn],c[maxn][maxn],d[maxn][maxn]; bool check(int x){ REP(i,0,n)REP(j,0,n)d[i][j]=x<inf/t[i][j]?x*t[i][j]-c[i][j]:inf; REP(p,0,n)REP(i,0,n)REP(j,0,n)MIN(d[i][j],d[i][p]+d[p][j]); REP(i,0,n)if(d[i][i]<=0)return 1; return 0; } main(){ IOS; cin>>n>>m>>k; REP(i,0,n)REP(j,0,k){ cin>>b[i][j]>>s[i][j]; if(b[i][j]<0)b[i][j]=inf; if(s[i][j]<0)s[i][j]=-inf; } REP(i,0,n)REP(j,0,n)t[i][j]=inf,c[i][j]=0; REP(i,0,m){ int v,w,tt;cin>>v>>w>>tt,--v,--w; t[v][w]=tt; } REP(p,0,n)REP(i,0,n)REP(j,0,n)MIN(t[i][j],t[i][p]+t[p][j]); REP(p,0,k)REP(i,0,n)REP(j,0,n)MAX(c[i][j],s[j][p]-b[i][p]); int l=0,r=1e11L+9; while(l+1<r){ if(check(mid))l=mid; else r=mid; } cout<<l<<endl; }

컴파일 시 표준 에러 (stderr) 메시지

merchant.cpp:52:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...