Submission #995209

# Submission time Handle Problem Language Result Execution time Memory
995209 2024-06-08T16:06:14 Z modwwe Olympic Bus (JOI20_ho_t4) C++17
0 / 100
32 ms 3720 KB
#pragma GCC optimize("Ofast,unroll-loops")
#pragma GCC target("avx,avx2,sse,sse2")
#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;
}

Compilation message

ho_t4.cpp:45:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   45 | main()
      | ^~~~
ho_t4.cpp: In function 'int diditcha(int, int)':
ho_t4.cpp:83:12: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+17' to '2147483647' [-Woverflow]
   83 |     return 1e17;
      |            ^~~~
ho_t4.cpp: In function 'void del(int, int)':
ho_t4.cpp:87:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<ic>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   87 |     for(int i=0; i<v[x].size(); i++)
      |                  ~^~~~~~~~~~~~
ho_t4.cpp: In function 'void phongbeo()':
ho_t4.cpp:104:22: warning: overflow in conversion from 'double' to 'int' changes value from '1.0e+17' to '2147483647' [-Woverflow]
  104 |             dp[i][j]=1e17;
      |                      ^~~~
ho_t4.cpp:116:9: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  116 |         for(int i=1; i<=n; i++)
      |         ^~~
ho_t4.cpp:119:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  119 |             s4+=diditcha(1,n);
      |             ^~
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 600 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 29 ms 3716 KB Output is correct
2 Incorrect 32 ms 3720 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 6 ms 604 KB Output is correct
2 Incorrect 5 ms 636 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 600 KB Output isn't correct
2 Halted 0 ms 0 KB -