제출 #995205

#제출 시각아이디문제언어결과실행 시간메모리
995205modwweOlympic Bus (JOI20_ho_t4)C++17
37 / 100
1012 ms7012 KiB
#include<bits/stdc++.h> #define int long long //#define ll long long #define down cout<<'\n'; #define NHP ios_base::sync_with_stdio(0);cout.tie(0);cin.tie(0); #define modwwe int t;cin>>t; while(t--) #define bit(i,j) (i>>j&1) #define sobit(a) __builtin_popcountll(a) #define task "test" #define fin(x) freopen(x".inp","r",stdin) #define fou(x) freopen(x".ans","w",stdout) #define pb push_back #define checktime cerr << (double)clock() / CLOCKS_PER_SEC * 1000 << " ms"; using namespace std; void phongbeo(); const int mod2=1e9+7; const int mod1=998244353; struct icd { int a,b; }; struct ib { int a; int b; }; struct ic { int a,b,c; }; struct id { int a,b,c,d; }; struct ie { int a,b,c, d,e,f; }; int n,m,s1,s2,s4,s3,sf,k,r,mid,s5,s6,mx,s7,s8,s9,mx2,res,dem2=0,dem=0,l; int i,s10,s12; int el=29; main() { #ifndef ONLINE_JUDGE //fin(task),fou(task); #endif NHP /// cin>>s1; // modwwe phongbeo(),down } struct cmp { bool operator()(ic a,ic b) { return a.a>b.a; } }; int color[201]; vector<ic> v[201]; int dp[201][201]; id a[50001]; bool b[50001]; int diditcha(int c,int y) { priority_queue<ic,vector<ic>,cmp>p; p.push({0,c,0}); memset(color,-1,sizeof color); while(!p.empty()) { ic x=p.top(); p.pop(); if(color[x.b]!=-1) continue; color[x.b]=x.c; if(x.b==y) return x.a; for(auto f:v[x.b]) p.push({x.a+f.b,f.a,f.c}); } return 1e17; } void del(int x,int y) { for(int i=0; i<v[x].size(); i++) if(v[x][i].c==y) { v[x].erase(v[x].begin()+i); return; } } void add(int x,int y,int s2,int c) { v[x].pb({y,s2,c}); } void phongbeo() { cin>>n; for(int i=1; i<=n; i++) { for(int j=1; j<=n; j++) dp[i][j]=1e17; dp[i][i]=0; } cin>>m; for(int j=1; j<=m; j++) { cin>>l>>r>>s2>>s3; a[j]= {l,r,s2,s3}; v[l].pb({r,s2,j}); dp[l][r]=min(dp[l][r],s2); } for(int k=1; k<=n; k++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]); s4+=diditcha(1,n); s2=n; while(color[s2]!=-1) { b[color[s2]]=1,s2=a[color[s2]].a; } s5+= diditcha(n,1); s3=s4+s5; s2=1; while(color[s2]!=-1) { b[color[s2]]=1,s2=a[color[s2]].a; } for(int j=1; j<=m; j++) if(b[j]) { del(a[j].a,j),add(a[j].b,a[j].a,a[j].c,j); s5=diditcha(1,n); s4=diditcha(n,1); s3=min({s4+s5+a[j].d,s3}); del(a[j].b,j),add(a[j].a,a[j].b,a[j].c,j); } else s3=min(s3,min(dp[1][a[j].b]+dp[a[j].a][n]+a[j].c,dp[1][n])+min(dp[n][a[j].b]+dp[a[j].a][1]+a[j].c,dp[n][1])+a[j].d); if(s3>=1e17)cout<<-1; else cout<<s3; }

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

ho_t4.cpp:43:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   43 | main()
      | ^~~~
ho_t4.cpp: In function 'void del(long long int, long long int)':
ho_t4.cpp:85:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<ic>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   85 |     for(int i=0; i<v[x].size(); i++)
      |                  ~^~~~~~~~~~~~
ho_t4.cpp: In function 'void phongbeo()':
ho_t4.cpp:114:9: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  114 |         for(int i=1; i<=n; i++)
      |         ^~~
ho_t4.cpp:117:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  117 |             s4+=diditcha(1,n);
      |             ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...