Submission #64779931
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#define LagaKar ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
#define pb push_back
#define pf push_front
#define pob pop_back
#define pof pop_front
#define mp make_pair
#define fi first
#define se second
#define lb lower_bound
#define ub upper_bound
#define ook order_of_key //number of elements less than k
#define fbo find_by_order //k th element (0 index)
#define nline endl
#define YES cout<<"YES"<<nline
#define NO cout<<"NO"<<nline
#define Yes cout<<"Yes"<<nline
#define No cout<<"No"<<nline
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
#define precise(ans) cout<<fixed<<setprecision(15)<<ans
#define fo(i,n) for(ll i=0;i<n;i++)
#define Fo(i,k,n) for(ll i=k;k<n?i<n:i>n;k<n?i+=1:i-=1)
#define Tr(it, a) for(auto it = a.begin(); it != a.end(); it++)
#define Sz(x) ((ll)(x).size())
#define All(x) x.begin(), x.end()
#define Allr(x) x.rbegin(), x.rend()
#define MAX(x) *max_element(All(x))
#define MIN(x) *min_element(All(x))
#define SUM(x) accumulate(All(x), 0LL)
#define CNT(x) __builtin_popcountll(x)
//##################################################################################################################
typedef long long ll; typedef unsigned long long ull; typedef long double lld;
typedef pair<ll, ll> pl; typedef vector<ll> vl;typedef vector<vl> vvl;
typedef vector<pl> vpl; template <typename T> using prq_mx = priority_queue<T>;
template <typename T> using prq_mn = priority_queue<T, vector<T>, greater<T>>;
//------------------------------------------------------------------------------------------------------------
template <typename T> using o_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename T, typename R> using o_map = tree<T, R, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
template <typename T> using o_multiset = tree<T,null_type,less_equal<T>,rb_tree_tag,tree_order_statistics_node_update>;
//********************************************************************************************************************
#ifdef hydracody
#include </home/anurag/Desktop/cpc/debug.h>
#else
#define debug(x)
#endif
//------------------------------------------------------------------------------------------------------------
const double eps=1e-9;const ll INF=(ll)1e9;const ll inf64=2e18;const ll INF64=9e18;
#define PI 3.1415926535897932384626
#define MOD 998244353
#define MOD1 1000000007
#define MOD2 1000000009
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
ll gcd(ll a, ll b) {if (b > a) {return gcd(b, a);} if (b == 0) {return a;} return gcd(b, a % b);}
ll lcm(ll a, ll b){return (a / gcd(a, b)) * b;}
ll power(ll x,ll y, ll p){if(y==0)return 1;ll res = 1;x = x % p;if (x == 0) return 0;while (y > 0){if (y & 1)res = (res*x) % p;y = y>>1;x = (x*x) % p;}return res;}
ll pinv(ll a, ll m){ return power(a, m - 2, m); }
ll logceil(ll x){ll s=0;while(x>0){s++;x=x/2;}return s;}
ll mod_add(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a + b) % m) + m) % m;}
ll mod_mul(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a * b) % m) + m) % m;}
ll mod_sub(ll a, ll b, ll m) {a = a % m; b = b % m; return (((a - b) % m) + m) % m;}
ll mod_div(ll a, ll b, ll m) {a = a % m; b = b % m; return (mod_mul(a, pinv(b, m), m) + m) % m;} //only for prime m
ll phin(ll n) {ll number = n; if (n % 2 == 0) {number /= 2; while (n % 2 == 0) n /= 2;} for (ll i = 3; i <= sqrt(n); i += 2) {if (n % i == 0) {while (n % i == 0)n /= i; number = (number / i * (i - 1));}} if (n > 1)number = (number / n * (n - 1)) ; return number;} //O(sqrt(N))
ll getRandomNumber(ll l, ll r) {return uniform_int_distribution<ll>(l, r)(rng);}
void starter(ll t) {cout << "Case #" << t << ": ";}
void starter1(ll t) {cerr << "Case #" << t << ": ";}
void compress(vector<ll>& vs){sort(vs.begin(),vs.end());vs.resize(unique(vs.begin(), vs.end()) - vs.begin());}
/////////////////////////////////////////////////////////////////////////////////////////////////
// **Stay calm ,Believe in YOURSELF,Never give UP
// **Not Everyday is Yours
void chal(){
ll n,m;
cin>>n>>m;
vvl g(n+1);
vl deg(n+1,0);
fo(i,m){
ll u,v;
cin>>u>>v;
g[u].pb(v);
g[v].pb(u);
deg[u]++;
deg[v]++;
}
vl sm(n+1,INF64);
sm[0]=0;
sm[1]=1;
set<pl> q;
q.insert({sm[1],1});
while(Sz(q)>0){
auto [x,y]=*q.begin();
q.erase({x,y});
for(auto ch:g[y]){
if(sm[ch]>max(x,ch)){
if(q.find({sm[ch],ch})!=q.end()){
q.erase({sm[ch],ch});
}
sm[ch]=max(x,ch);
q.insert({sm[ch],ch});
}
}
}
for(ll i=1;i<=n;i++){
sm[i]=max(sm[i],sm[i-1]);
}
// debug(sm);
ll sum=0;
set<ll> dd;
for(ll i=1;i<=n;i++){
while(Sz(dd)>0 && *dd.begin()<=i){
sum--;
dd.erase(*dd.begin());
}
for(auto ch:g[i]){
if(ch>i){
if(dd.find(ch)==dd.end()){
dd.insert(ch);
sum++;
}
}
}
if(sm[i]>i){
cout<<-1<<nline;
}else cout<<sum<<nline;
}
// cout<<nline;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
int32_t main() {
LagaKar;
#ifdef hydracody
freopen("input.txt", "r", stdin); freopen("output1.txt", "w", stdout); freopen("error.txt", "w", stderr);
#endif
ll t; t = 1;
// cin>>t;
for (ll i = 1; i <= t; i++) {
// starter(i);
chal();
}
return 0;
}
/*
cmd->g++ code1.cpp ./a.out
*/
Submission Info
Submission Time |
|
Task |
E - Reachable Set |
User |
Hydracody |
Language |
C++ 20 (gcc 12.2) |
Score |
450 |
Code Size |
6000 Byte |
Status |
AC |
Exec Time |
407 ms |
Memory |
32528 KiB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
450 / 450 |
Status |
|
|
Set Name |
Test Cases |
Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt |
All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 00_sample_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 01_random_31.txt, 01_random_32.txt, 01_random_33.txt, 01_random_34.txt, 01_random_35.txt, 01_random_36.txt, 01_random_37.txt, 01_random_38.txt, 01_random_39.txt, 01_random_40.txt, 01_random_41.txt, 01_random_42.txt, 01_random_43.txt, 01_random_44.txt, 01_random_45.txt, 01_random_46.txt, 01_random_47.txt, 01_random_48.txt |
Case Name |
Status |
Exec Time |
Memory |
00_sample_00.txt |
AC |
1 ms |
3580 KiB |
00_sample_01.txt |
AC |
1 ms |
3676 KiB |
00_sample_02.txt |
AC |
1 ms |
3512 KiB |
00_sample_03.txt |
AC |
1 ms |
3684 KiB |
01_random_04.txt |
AC |
245 ms |
17028 KiB |
01_random_05.txt |
AC |
368 ms |
31304 KiB |
01_random_06.txt |
AC |
313 ms |
25844 KiB |
01_random_07.txt |
AC |
319 ms |
31744 KiB |
01_random_08.txt |
AC |
407 ms |
25104 KiB |
01_random_09.txt |
AC |
369 ms |
32508 KiB |
01_random_10.txt |
AC |
407 ms |
25004 KiB |
01_random_11.txt |
AC |
390 ms |
24360 KiB |
01_random_12.txt |
AC |
399 ms |
24924 KiB |
01_random_13.txt |
AC |
401 ms |
24884 KiB |
01_random_14.txt |
AC |
406 ms |
24780 KiB |
01_random_15.txt |
AC |
73 ms |
10140 KiB |
01_random_16.txt |
AC |
102 ms |
9040 KiB |
01_random_17.txt |
AC |
166 ms |
10264 KiB |
01_random_18.txt |
AC |
27 ms |
4356 KiB |
01_random_19.txt |
AC |
29 ms |
4500 KiB |
01_random_20.txt |
AC |
25 ms |
8752 KiB |
01_random_21.txt |
AC |
16 ms |
5312 KiB |
01_random_22.txt |
AC |
4 ms |
3896 KiB |
01_random_23.txt |
AC |
34 ms |
10896 KiB |
01_random_24.txt |
AC |
32 ms |
8908 KiB |
01_random_25.txt |
AC |
18 ms |
6428 KiB |
01_random_26.txt |
AC |
370 ms |
32468 KiB |
01_random_27.txt |
AC |
351 ms |
23868 KiB |
01_random_28.txt |
AC |
342 ms |
22624 KiB |
01_random_29.txt |
AC |
351 ms |
23356 KiB |
01_random_30.txt |
AC |
363 ms |
32528 KiB |
01_random_31.txt |
AC |
351 ms |
23836 KiB |
01_random_32.txt |
AC |
340 ms |
22704 KiB |
01_random_33.txt |
AC |
352 ms |
23412 KiB |
01_random_34.txt |
AC |
369 ms |
32316 KiB |
01_random_35.txt |
AC |
351 ms |
23820 KiB |
01_random_36.txt |
AC |
344 ms |
22812 KiB |
01_random_37.txt |
AC |
353 ms |
23464 KiB |
01_random_38.txt |
AC |
1 ms |
3552 KiB |
01_random_39.txt |
AC |
1 ms |
3544 KiB |
01_random_40.txt |
AC |
1 ms |
3544 KiB |
01_random_41.txt |
AC |
1 ms |
3560 KiB |
01_random_42.txt |
AC |
1 ms |
3512 KiB |
01_random_43.txt |
AC |
1 ms |
3520 KiB |
01_random_44.txt |
AC |
1 ms |
3556 KiB |
01_random_45.txt |
AC |
1 ms |
3492 KiB |
01_random_46.txt |
AC |
1 ms |
3688 KiB |
01_random_47.txt |
AC |
1 ms |
3680 KiB |
01_random_48.txt |
AC |
1 ms |
3560 KiB |