Submission #1225098

#TimeUsernameProblemLanguageResultExecution timeMemory
1225098_rain_Railway Trip (JOI17_railway_trip)C++20
5 / 100
14 ms3912 KiB
#include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=(int)1e5; const int INF=(int)1e9; int source[N+2],sink[N+2],l[N+2]; int n,k,q; int add(int a,int b){ return (a+b>=n?a+b-n:a+b); } int sub(int a,int b){ return a-b<0?a-b+n:a-b; } vector<int>ke[N+2]; void add_canh(int u,int v){ ke[u].push_back(v); } namespace subtask1{ bool check(){ return n<=100 && q<=100; } const int LIMIT=100; int vis[LIMIT+2]; int process(int source,int sink){ queue<int>q; for(int i=0;i<=n;++i) vis[i]=INF; q.push(source); vis[source]=1; while (q.size()){ int u=q.front(); q.pop(); for(auto&v:ke[u]){ if (vis[v]==INF){ vis[v]=vis[u]+1; q.push(v); } } } return vis[sink]-2; } void main_code(){ for(int i=0;i<n;++i){ int mx=0; for(int j=i+1;j<n;++j){ if (mx+1>l[i]) break; if (l[j]>mx) { add_canh(i,j); } mx=max(mx,l[j]); } mx=0; for(int j=i-1;j>=0;--j){ if (mx+1>l[i]) break; if (l[j]>mx) { add_canh(i,j); } mx=max(mx,l[j]); } } for(int i=1;i<=q;++i) cout<<min(process(source[i],sink[i]),process(sink[i],source[i]))<<'\n'; return; } } int main(){ ios::sync_with_stdio(false); cin.tie(0) ; cout.tie(0); #define task "main" if (fopen(task".inp","r")){ freopen(task".inp","r",stdin); freopen(task".out","w",stdout); } cin>>n>>k>>q; for(int i=0;i<n;++i) cin>>l[i]; for(int i=1;i<=q;++i) { cin>>source[i]>>sink[i]; --source[i] , --sink[i]; } if (subtask1::check()){ return subtask1::main_code(),0; } return 0; }

Compilation message (stderr)

railway_trip.cpp: In function 'int main()':
railway_trip.cpp:80:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   80 |                 freopen(task".inp","r",stdin);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
railway_trip.cpp:81:24: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   81 |                 freopen(task".out","w",stdout);
      |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...