Submission #1017585

#TimeUsernameProblemLanguageResultExecution timeMemory
1017585simona1230Friend (IOI14_friend)C++17
8 / 100
15 ms16536 KiB
#include <bits/stdc++.h> #include "friend.h" using namespace std; int c[100001]; int p[100001]; int t[100001]; int n; vector<int> v[1024]; bool in[1024]; int brute; void check() { int sum=0; bool pos=1; for(int i=0;i<n;i++) { if(in[i])sum+=c[i]; for(int j=0;j<v[i].size();j++) { int nb=v[i][j]; if(in[i]&&in[nb])pos=0; } } if(!pos)return; brute=max(brute,sum); } void rec(int i) { if(i==n+1) { check(); return; } in[i]=1; rec(i+1); in[i]=0; rec(i+1); } int findSample(int N,int confidence[],int host[],int protocol[]) { n=N; int sum=0,maxx=0; for(int i=0;i<n;i++) { t[i]=protocol[i]; //cout<<"- "<<t[i]<<endl; c[i]=confidence[i]; p[i]=host[i]; if(t[i]==2||t[i]==0) { v[i].push_back(p[i]); v[p[i]].push_back(i); } if(t[i]==2||t[i]==1) { for(int j=0;j<v[p[i]].size();j++) { int nb=v[p[i]][j]; if(nb==i)continue; v[nb].push_back(i); v[i].push_back(nb); } } sum+=c[i]; maxx=max(maxx,c[i]); } /*for(int i=0;i<n;i++) { cout<<i<<": "; for(int j=0;j<v[i].size();j++) { cout<<v[i][j]<<" "; } cout<<endl; }*/ if(n<=10) { rec(1); return brute; } //cout<<sum<<endl; bool o1=1; for(int i=1;i<n;i++) if(t[i]!=1)o1=0; //cout<<o1<<endl; if(o1==1)return sum; bool o2=1; for(int i=1;i<n;i++) if(t[i]!=2)o2=0; if(o2==1)return maxx; }

Compilation message (stderr)

friend.cpp: In function 'void check()':
friend.cpp:20:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   20 |         for(int j=0;j<v[i].size();j++)
      |                     ~^~~~~~~~~~~~
friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:62:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |             for(int j=0;j<v[p[i]].size();j++)
      |                         ~^~~~~~~~~~~~~~~
friend.cpp:98:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   98 |     for(int i=1;i<n;i++)
      |     ^~~
friend.cpp:100:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  100 |  if(o2==1)return maxx;
      |  ^~
friend.cpp:101:1: warning: control reaches end of non-void function [-Wreturn-type]
  101 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...