Submission #1312516

#TimeUsernameProblemLanguageResultExecution timeMemory
1312516galactic_programmerRobot (JOI21_ho_t4)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
#define int long long
#define long long long

using namespace std;
const int N=1e5+5;
const long inf=1e18;
struct freq
{
    int x,time;
};
struct elem
{
    int x,col,cost;
    bool operator<(const elem& e) const
    {
        return cost<e.cost;
    }
};
freq f[N];
int n,m,i,j,x,y,c,p,d[N];
vector<elem> edge[N],uniq[N],multiple[N];
void dijkstra(int orig)
{
    for(i=1;i<=n;++i)
        d[i]=inf;
    priority_queue<elem> q;
    q.push({orig,0,0});
    d[orig]=0;
    while(!q.empty())
    {
        auto e=q.top();
        q.pop();
        int x=e.x;
        //cout<<d[2]<<endl;
        for(auto f:uniq[x])
        {
            int y=f.x;
            if(d[y]>d[x])
            {
                d[y]=d[x];
                q.push({y,0,d[y]});
            }
        }
        for(auto f:multiple[x])
        {
            int y=f.x,cost=f.cost;
            if(d[y]>d[x]+cost)
            {
                d[y]=d[x]+cost;
                q.push({y,0,d[y]});
            }
        }
    }
}
signed main()
{
    cin>>n>>m;
    for(i=1;i<=m;++i)
    {
        cin>>x>>y>>c>>p;
        edge[x].push_back({y,c,p});
    }
    for(i=1;i<=n;++i)
    {
        for(auto e:edge[i])
        {
            int x=e.x,c=e.col;
            if(f[c].time!=i)
            {
                f[c].time=i;
                f[c].x=1;
            }
            else
                f[c].x++;
        }
        for(auto e:edge[i])
        {
            int x=e.x,col=e.col,cost=e.cost;
            if(f[col].x==1) uniq[i].push_back({x,col,cost});
            else multiple[i].push_back({x,col,cost});
        }
    }
    dijkstra(1);
    if(d[n]==inf) cout<<-1;
    else cout<<d[n];
    return 0;
}

Compilation message (stderr)

Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:6:7: note: in expansion of macro 'int'
    6 | const int N=1e5+5;
      |       ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:6:7: note: in expansion of macro 'int'
    6 | const int N=1e5+5;
      |       ^~~
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:10:5: note: in expansion of macro 'int'
   10 |     int x,time;
      |     ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:10:5: note: in expansion of macro 'int'
   10 |     int x,time;
      |     ^~~
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:14:5: note: in expansion of macro 'int'
   14 |     int x,col,cost;
      |     ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:14:5: note: in expansion of macro 'int'
   14 |     int x,col,cost;
      |     ^~~
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:21:1: note: in expansion of macro 'int'
   21 | int n,m,i,j,x,y,c,p,d[N];
      | ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:21:1: note: in expansion of macro 'int'
   21 | int n,m,i,j,x,y,c,p,d[N];
      | ^~~
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:23:15: note: in expansion of macro 'int'
   23 | void dijkstra(int orig)
      |               ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:23:15: note: in expansion of macro 'int'
   23 | void dijkstra(int orig)
      |               ^~~
Main.cpp: In function 'void dijkstra(long long int)':
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:34:9: note: in expansion of macro 'int'
   34 |         int x=e.x;
      |         ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:34:9: note: in expansion of macro 'int'
   34 |         int x=e.x;
      |         ^~~
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:38:13: note: in expansion of macro 'int'
   38 |             int y=f.x;
      |             ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:38:13: note: in expansion of macro 'int'
   38 |             int y=f.x;
      |             ^~~
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:47:13: note: in expansion of macro 'int'
   47 |             int y=f.x,cost=f.cost;
      |             ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:47:13: note: in expansion of macro 'int'
   47 |             int y=f.x,cost=f.cost;
      |             ^~~
Main.cpp: In function 'int main()':
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:68:13: note: in expansion of macro 'int'
   68 |             int x=e.x,c=e.col;
      |             ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:68:13: note: in expansion of macro 'int'
   68 |             int x=e.x,c=e.col;
      |             ^~~
Main.cpp:3:14: error: 'long long long' is too long for GCC
    3 | #define long long long
      |              ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:79:13: note: in expansion of macro 'int'
   79 |             int x=e.x,col=e.col,cost=e.cost;
      |             ^~~
Main.cpp:3:19: error: 'long long long' is too long for GCC
    3 | #define long long long
      |                   ^~~~
Main.cpp:2:18: note: in expansion of macro 'long'
    2 | #define int long long
      |                  ^~~~
Main.cpp:79:13: note: in expansion of macro 'int'
   79 |             int x=e.x,col=e.col,cost=e.cost;
      |             ^~~