Submission #376085

#TimeUsernameProblemLanguageResultExecution timeMemory
376085eulerdesojaLove Polygon (BOI18_polygon)C++14
29 / 100
332 ms31596 KiB
#include<bits/stdc++.h> #include<fstream> using namespace std; #define ll long long #define pb push_back #define sz(x) int(x.size()) typedef pair<int,int>ii; typedef vector<int> vi; void setIO(string s) { ios_base::sync_with_stdio(0); cin.tie(0); freopen((s+".in").c_str(),"r",stdin); freopen((s+".out").c_str(),"w",stdout); } const int mxn=1e5+5; int n,dp[mxn][2],root[mxn]; map<string,int>mp; string love[mxn][2]; vi g[mxn]; bool v[mxn]; void dfs(int i,int p){ int sum=0; int ma=0; for(int j:g[i])if(j!=p){ dfs(j,i); sum+=dp[j][0]; ma=max(ma,dp[j][1]-dp[j][0]); } dp[i][1]=1+sum; dp[i][0]=ma+sum; } int32_t main(){ ios_base::sync_with_stdio(0);cin.tie(0); //setIO("sort"); cin>>n; if(n&1){ cout<<-1<<"\n"; return 0; } for(int i=0;i<n;i++){ cin>>love[i][0]>>love[i][1]; mp[love[i][0]]; mp[love[i][1]]; } int T=0; for(auto it=mp.begin();it!=mp.end();it++){ T++; it->second=T; } for(int i=0;i<n;i++){ int x=mp[love[i][0]]; int y=mp[love[i][1]]; if(x==y){ root[x]=1; continue; } g[y].pb(x); } int ans=0; for(int i=1;i<=n;i++){ if(root[i]){ //self-loop dfs(i,0); ans+=dp[i][0]; } } cout<<n-ans<<"\n"; return 0; }

Compilation message (stderr)

polygon.cpp: In function 'void setIO(std::string)':
polygon.cpp:14:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   14 |   freopen((s+".in").c_str(),"r",stdin);
      |   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
polygon.cpp:15:10: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result]
   15 |   freopen((s+".out").c_str(),"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...