Submission #521511

#TimeUsernameProblemLanguageResultExecution timeMemory
521511Rasoul006Usmjeri (COCI17_usmjeri)C++17
28 / 140
153 ms7368 KiB
#include <bits/stdc++.h> #define endl "\n" typedef long long ll; using namespace std; const int N = 1e6+5; const int mod = 1e9+7; ll n , m , is[300009] ; pair < ll , ll > pr[300009] ; int main() { ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> m ; for(int i = 0 ; i < n - 1 ; i++){ ll a , b ; cin >> a >> b ; } for(int i =1 ; i <= m ; i++){ ll a , b ; cin >> a >> b ; pr[i].first = min(a ,b) ; pr[i].second = max(a , b) ; is[pr[i].first] += 1 ; is[pr[i].second] += -1 ; } for(int i = 1 ; i < n ;i++){ is[i] += is[i-1] ; } ll ans = 1 ; ll r = -1 ; sort(pr , pr + n) ; for(int i = 1 ; i <= m ;i++){ if(pr[i].first >= r){ ans = ((ans % mod) * (2 % mod)) % mod ; } r = max(r , pr[i].second) ; } for(int i = 1 ; i < n ; i++){ if(is[i] == 0){ ans = ((ans % mod) * (2 % mod)) % mod ; } } cout << ans << endl ; return 0; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...