fork(1) download
  1. #include<iostream>
  2. #include<algorithm>
  3. using namespace std;
  4.  
  5. int n,m,a[100],x[100][100],p,q,b[12]={0,1,2,3,4,5,6,7,8,9,10,11},v,w;
  6.  
  7. int main(){
  8. cin>>n>>m;
  9. for(int i=1;i<=n;i++){
  10. cin>>a[i];
  11. }
  12. for(int i=1;i<=m;i++){
  13. cin>>p>>q;
  14. x[p][q]=1;
  15. x[q][p]=1;
  16. }
  17. do{
  18. v=a[b[0]+1];
  19. for(int i=1;i<n;i++){
  20. if(x[b[i-1]+1][b[i]+1]==1){
  21. v+=a[b[i]+1];
  22. }
  23. else{
  24. break;
  25. }
  26. }
  27. w=max(w,v);
  28. }while(next_permutation(b,b+n));
  29. cout<<w<<endl;
  30. return 0;
  31. }
Success #stdin #stdout 0s 3456KB
stdin
6 6
1
2
3
4
5
7
1 2
1 3
1 6
2 4
3 4
4 5
stdout
20