TheInvadr's blog

By TheInvadr, history, 13 months ago, In English

so for problem 1255B, im trying to connect every fridge to the ones costing the smallest and second smallest then if need be connecting those 2 to each other.its saying that the 503th fridge in the first testcase in the second test can be opened by anyone ? can anyone explain why ? this is my code -

include <bits/stdc++.h>

using namespace std; int main() { int t; cin>>t; while(t--){ // int n,m; int n,m; cin>>n>>m;

pair<int,int> arr[n];
    int a[n];

    for(int i=0;i<n;i++){
        cin>>arr[i].first;
        arr[i].second=i;
    }

    if(n!=m||n==2){
        cout<<-1<<endl;
        continue;
    }

    sort(arr,arr+n);
    vector<pair<int,int>> res;
    int sum = 0;
    int cntf = 0;
    int cnts = 0;

for (int i = 2; i < n; i++) {

sum += arr[i].first + arr[0].first;
res.push_back({arr[i].second+1, arr[0].second + 1});
cntf++;

sum += arr[i].first + arr[1].first;
res.push_back({arr[i].second+1, arr[1].second + 1});
cnts++;

}

if(cntf<2||cnts<2){
        sum+=arr[0].first+arr[1].first;
        res.push_back({arr[0].second+1,arr[1].second+1});
    }

    cout<<sum<<endl;
    for(pair<int,int> i : res)cout<<i.first<<" "<<i.second<<endl;

}

}

Full text and comments »

  • Vote: I like it
  • -1
  • Vote: I do not like it