Submission #411546

#TimeUsernameProblemLanguageResultExecution timeMemory
411546A_DTropical Garden (IOI11_garden)C++14
49 / 100
17 ms5004 KiB
#include "garden.h" #include "gardenlib.h" #include <bits/stdc++.h> #define ii pair<int,int> #define F first #define S second using namespace std; const int NN=3e3+100; vector<ii> g[NN]; bool dp[NN][NN][3]; int p,n; int ok(int u,int v) { int ret=2; for(int i=0;i<g[u].size();i++){ if(i==2)break; if(g[u][i].S==v){ ret=i; break; } } return ret; } void count_routes(int N, int M, int P, int R[][2], int Q, int G[]) { p=P; n=N; for(int i=0;i<n;i++)g[i].clear(); for(int i=0;i<M;i++){ int u=R[i][0]; int v=R[i][1]; g[u].push_back({i,v}); g[v].push_back({i,u}); } for(int i=0;i<n;i++)sort(g[i].begin(),g[i].end()); int k=G[0]; dp[p][0][2]=1; for(int t=0;t<k;t++){ for(int i=0;i<n;i++){ for(int skip=0;skip<3;skip++){ if(dp[i][t][skip]){ if(skip==1){ int x=g[i][0].S; int q=ok(x,i); if(q<2){ dp[x][t+1][q]=1; } continue; } for(int r=0;r<g[i].size();r++){ if(r==skip&&g[i].size()!=1&&skip!=2)continue; int x=g[i][r].S; int q=ok(x,i); if(q>1)continue; dp[x][t+1][q]=1; } } } } } /* cout<<endl; for(int t=0;t<=k;t++){ for(int i=0;i<n;i++){ for(int skip=0;skip<3;skip++){ cout<<dp[i][t][skip]<<" "; } cout<<endl; } cout<<endl; } cout<<endl; */ int ans=0; for(int i=0;i<n;i++){ ans+=dp[i][k][0]; } answer(ans); }

Compilation message (stderr)

garden.cpp: In function 'int ok(int, int)':
garden.cpp:15:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |     for(int i=0;i<g[u].size();i++){
      |                 ~^~~~~~~~~~~~
garden.cpp: In function 'void count_routes(int, int, int, int (*)[2], int, int*)':
garden.cpp:50:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   50 |                     for(int r=0;r<g[i].size();r++){
      |                                 ~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...