437C - The Child and Toy - CodeForces Solution


graphs greedy sortings *1400

Please click on ads to support us..

Python Code:

n,m = map(int,input().split())
a = list(map(int,input().split()))
store = set()
b = list(range(1,n+1))

d = {}
for i in b:
    d[i] = [] 
    
for _ in range(m):
    x,y = map(int,input().split())
    store.add((x,y))
    store.add((y,x))
    d[x].append(y)
    d[y].append(x)
    
    
count = 0 
z = sorted(zip(a,b))

for _,i in z:
    
    for j in d[i]:
        
        if (i,j) not in store:
            continue 
            
        count+= a[i-1]
        store.remove((i,j))
        store.remove((j,i))
    if len(store)==0:
        break 
        
print(count)

C++ Code:

// author: Ali Safwat
#include <bits/extc++.h>
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define Caraxes  ios_base :: sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
#define int long long int
#define F first
#define S second
using namespace std;
// using namespace __gnu_pbds;

template< typename  T = int >
std :: vector < T > get(int size = 0, std :: istream& in_stream = std :: cin);

const int N = 1e6+ 20;
void Dracarys(){
    int n,m;
    cin >> n >> m;
    map < int, int > mp;
    for(int i = 1;i <= n; ++i){
        int val;
        cin >> val;
        mp[i] = val;
    }
    int ans = 0;
    for(int i = 0;i < m; ++i){
        int u,v;
        cin >> u >> v;
        ans += (min(mp[u],mp[v]));
    }
    cout << ans << '\n';
}


signed main()
{
    Caraxes
    int test = 1;
    //cin >> test;
    while(test--) {
        Dracarys();
    }
}

template< typename  T>
std :: vector < T > get(int size , std :: istream& in_stream){
    if(!size){
        in_stream >> size;
    }
    std :: vector < T > array(size);
    for(auto& i : array)
        in_stream >> i;
    return array;
}


Comments

Submit
0 Comments
More Questions

946. Validate Stack Sequences
921. Minimum Add to Make Parentheses Valid
881. Boats to Save People
497. Random Point in Non-overlapping Rectangles
528. Random Pick with Weight
470. Implement Rand10() Using Rand7()
866. Prime Palindrome
1516A - Tit for Tat
622. Design Circular Queue
814. Binary Tree Pruning
791. Custom Sort String
787. Cheapest Flights Within K Stops
779. K-th Symbol in Grammar
701. Insert into a Binary Search Tree
429. N-ary Tree Level Order Traversal
739. Daily Temperatures
647. Palindromic Substrings
583. Delete Operation for Two Strings
518. Coin Change 2
516. Longest Palindromic Subsequence
468. Validate IP Address
450. Delete Node in a BST
445. Add Two Numbers II
442. Find All Duplicates in an Array
437. Path Sum III
436. Find Right Interval
435. Non-overlapping Intervals
406. Queue Reconstruction by Height
380. Insert Delete GetRandom O(1)
332. Reconstruct Itinerary