Submission #17634368


Source Code Expand

// {{{ Boilerplate Code <--------------------------------------------------
// vim:filetype=cpp:foldmethod=marker:foldmarker={{{,}}}

#include <algorithm>
#include <bitset>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <deque>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <utility>
#include <vector>

#define FOR(I,A,B) for(int I = (A); I < (B); ++I)
#define ALL(A)     (A).begin(), (A).end()

using namespace std;

// }}}


long long traverse(const int N, vector<long long> &a, const vector<long long> &b, vector<set<int> > &next,vector<int> &visited,int target) {
        long long ret=b[target]-a[target];
        for(auto it=next[target].begin();it!=next[target].end();++it){
                int t=*it;

                if(visited[t]){
                        continue;
                }
                visited[t]=1;
                ret += traverse(N,a,b,next,visited,t);
        }
        return ret;
}

int solve(const int N, vector<long long> &a, const vector<long long> &b, vector<set<int> > &next) {
        vector<int> visited;
        FOR(i,0,N) visited.push_back(0);

        FOR(i,0,N){
                if(visited[i]==0){
                        visited[i]=1;
                        long long res = traverse(N,a,b,next,visited,i);
                        if (res!=0LL){
                                return 0;
                        }
                }
        }
        return 1;

}

int main(){
        int N,M;
        cin>>N>>M;

        vector<long long> a,b;

        FOR(i,0,N){
                long long tmp;
                cin>>tmp;
                a.push_back(tmp);
        }
        FOR(i,0,N){
                long long tmp;
                cin>>tmp;
                b.push_back(tmp);
        }

        vector <set<int> > next;
        FOR(i,0,N){
                next.push_back(set<int>());
        }

        FOR(i,0,M){
                int c,d;
                cin>>c>>d;
                --c;--d;
                next[c].insert(d);
                next[d].insert(c);
        }

        cout<<(solve(N,a,b,next)?"Yes":"No")<<endl;
}

Submission Info

Submission Time
Task B - Values
User nhirokinet
Language C++ (GCC 9.2.1)
Score 400
Code Size 2338 Byte
Status AC
Exec Time 371 ms
Memory 37720 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 4
AC × 44
Set Name Test Cases
Sample 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03
All 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 01_small_0, 01_small_1, 01_small_2, 01_small_3, 01_small_4, 01_small_5, 01_small_6, 01_small_7, 01_small_8, 01_small_9, 02_large_0, 02_large_1, 02_largecon_0, 02_largecon_1, 02_largecon_2, 02_largecon_3, 02_largecon_4, 02_largecon_5, 02_toolarge_0, 02_toolarge_1, 02_toolarge_2, 02_toolarge_3, 03_few_e_0, 03_few_e_1, 03_few_e_2, 03_few_e_3, 03_few_e_4, 03_few_e_5, 03_is_tree_0, 03_is_tree_1, 03_is_tree_2, 03_is_tree_3, 04_kill_overflow_0, 04_kill_overflow_1, 04_kill_overflow_2, 04_kill_overflow_3, 04_sumequal_0, 04_sumequal_1, 04_sumequal_2, 04_sumequal_3
Case Name Status Exec Time Memory
00_sample_00 AC 9 ms 3444 KiB
00_sample_01 AC 2 ms 3620 KiB
00_sample_02 AC 4 ms 3416 KiB
00_sample_03 AC 3 ms 3592 KiB
01_small_0 AC 3 ms 3496 KiB
01_small_1 AC 2 ms 3472 KiB
01_small_2 AC 3 ms 3576 KiB
01_small_3 AC 2 ms 3624 KiB
01_small_4 AC 2 ms 3592 KiB
01_small_5 AC 8 ms 3500 KiB
01_small_6 AC 2 ms 3588 KiB
01_small_7 AC 2 ms 3592 KiB
01_small_8 AC 4 ms 3552 KiB
01_small_9 AC 3 ms 3572 KiB
02_large_0 AC 178 ms 20376 KiB
02_large_1 AC 115 ms 13752 KiB
02_largecon_0 AC 371 ms 37156 KiB
02_largecon_1 AC 334 ms 32556 KiB
02_largecon_2 AC 368 ms 37720 KiB
02_largecon_3 AC 250 ms 26388 KiB
02_largecon_4 AC 358 ms 33972 KiB
02_largecon_5 AC 371 ms 36480 KiB
02_toolarge_0 AC 333 ms 33768 KiB
02_toolarge_1 AC 354 ms 35488 KiB
02_toolarge_2 AC 287 ms 30972 KiB
02_toolarge_3 AC 334 ms 34012 KiB
03_few_e_0 AC 96 ms 11936 KiB
03_few_e_1 AC 128 ms 19576 KiB
03_few_e_2 AC 111 ms 19056 KiB
03_few_e_3 AC 128 ms 19552 KiB
03_few_e_4 AC 131 ms 19792 KiB
03_few_e_5 AC 114 ms 19116 KiB
03_is_tree_0 AC 229 ms 24356 KiB
03_is_tree_1 AC 235 ms 25356 KiB
03_is_tree_2 AC 215 ms 23468 KiB
03_is_tree_3 AC 229 ms 24696 KiB
04_kill_overflow_0 AC 371 ms 37340 KiB
04_kill_overflow_1 AC 291 ms 29908 KiB
04_kill_overflow_2 AC 346 ms 33576 KiB
04_kill_overflow_3 AC 284 ms 29156 KiB
04_sumequal_0 AC 128 ms 15552 KiB
04_sumequal_1 AC 98 ms 12424 KiB
04_sumequal_2 AC 46 ms 7004 KiB
04_sumequal_3 AC 85 ms 11348 KiB